大数据处理架构 Hadoop
概述
Hadoop简介
- Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构
- Hadoop是基于Java语言开发的,具有很好的跨平台特性,并且可以部署在廉价的计算机集群中
- Hadoop的核心是分布式文件系统HDFS(Hadoop Distributed File System)和MapReduce
Hadoop的特性
Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可伸缩的方式进行处理的,它具有以下几个方面的特性:
- 高可靠性
- 高效性
- 高可扩展性
- 高容错性
- 成本低
- 运行在Linux平台上
- 支持多种编程语言
Hadoop项目架构
Hadoop的项目结构不断丰富发展,已经形成一个丰富的Hadoop生态系统:
Hadoop的安装和使用
Hadoop的安装方式
- 单机模式:Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试
- 伪分布式模式:Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件
- 分布式模式:使用多个节点构成集群环境来运行Hadoop
Hadoop的安装配置(单机/伪分布式)
- 创建Hadoop用户
- SSH登录权限设置
- 安装Java环境
- 单机安装配置
- 伪分布式安装配置
SSH登录权限设置
SSH是什么?
- SSH 为 Secure Shell 的缩写,是建立在应用层和传输层基础上的安全协议。
- SSH 是目前较可靠、专为远程登录会话和其他网络服务提供安全性的协议。
- 利用SSH协议可以有效防止远程管理过程中的信息泄露问题。
- SSH是由客户端和服务端的软件组成,服务端是一个守护进程(daemon),它在后台运行并响应来自客户端的连接请求,客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。
配置SSH的原因:
Hadoop名称节点(NameNode)需要启动集群中所有机器的Hadoop守护进程,这个过程需要通过SSH登录来实现。Hadoop并没有提供SSH输入密码登录的形式,因此,为了能够顺利登录每台机器,需要将所有机器配置为名称节点可以无密码登录。
单机安装配置
Hadoop 解压后即可使用,默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。
伪分布式安装配置
- Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件
- Hadoop的配置文件位于/usr/local/hadoop/etc/hadoop/中,伪分布式需要修改2个配置文件core-site.xml和hdfs-site.xml
- Hadoop的配置文件是xml格式,每个配置以声明property的name和value的方式来实现
关于三种Shell命令方式的区别:
- hadoop fs
- hadoop dfs
- hdfs dfs
hadoop fs适用于任何不同的文件系统,比如本地文件系统和HDFS文件系统
hadoop dfs只能适用于HDFS文件系统
hdfs dfs跟hadoop dfs的命令作用一样,也只能适用于HDFS文件系统
Hadoop集群的部署与使用
Hadoop集群中有哪些节点类型
- Hadoop框架中最核心的设计是为海量数据提供存储的HDFS和对数据进行计算的MapReduce
- MapReduce的作业主要包括:(1)从磁盘或从网络读取数据,即IO密集工作;(2)计算数据,即CPU密集工作
- Hadoop集群的整体性能取决于CPU、内存、网络以及存储之间的性能平衡。因此运营团队在选择机器配置时要针对不同的工作节点选择合适硬件类型
- 一个基本的Hadoop集群中的节点主要有: NameNode:负责协调集群中的数据存储 DataNode:存储被拆分的数据块 JobTracker:协调数据计算任务 TaskTracker:负责执行由JobTracker指派的任务 SecondaryNameNode:帮助NameNode收集文件系统运行的状态信息
集群规模要多大
- Hadoop集群规模可大可小,初始时,可以从一个较小规模的集群开始,比如包含10个节点,然后,规模随着存储器和计算需求的扩大而扩大。
- 如果数据每周增大1TB,并且有三个HDFS副本,然后每周需要一个额外的3TB作为原始数据存储。要允许一些中间文件和日志(假定30%)的空间,由此,可以算出每周大约需要增加一台新机器。存储两年数据的集群,大约需要100台机器。
- 对于一个小的集群,名称节点(NameNode)和JobTracker运行在单个节点上,通常是可以接受的。但是,随着集群和存储在HDFS中的文件数量的增加,名称节点需要更多的主存,这时,名称节点和JobTracker就需要运行在不同的节点上。
- 第二名称节点(SecondaryNameNode)会和名称节点可以运行在相同的机器上,但是,由于第二名称节点和名称节点几乎具有相同的主存需求,因此,二者最好运行在不同节点上。
集群网络拓扑
- 普通的Hadoop集群结构由一个两阶网络构成
- 每个机架(Rack)有30-40个服务器,配置一个1GB的交换机,并向上传输到一个核心交换机或者路由器(1GB或以上)
- 在相同的机架中的节点间的带宽的总和,要大于不同机架间的节点间的带宽总和
集群的建立与安装
采购好相关的硬件设备后,就可以把硬件装入机架,安装并运行Hadoop。
安装Hadoop有多种方法:
(1)手动安装
(2)自动化安装
Hadoop不仅可以运行在企业内部的集群中,也可以运行在云计算环境中。
版权归原作者 so.far_away 所有, 如有侵权,请联系我们删除。