(一)Hadoop组成
文章目录
Hadoop的优势
- 高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失
- 高拓展性:在集群间分配任务数据,可方便的拓展数以千计的节点
- 高效性:在MR的思想下,Hadoop是并行工作的,以加快任务处理速度
- 高容错性:能够自动将失败的任务重新分配
Hadoop的组成:
HDFS(数据存储)架构概述
NameNode(nn)
存储文件的元数据,如文件名,文件目录结构,文件属性,以及每个文件的块列表和块所在的Datanode //书籍目录
DataNode(dn)
在本地文件系统存储文件块数据,以及数据的校检和。 //书籍内容
Secondary NameNode(2nm)
用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照
YARN(资源调度)架构概述
ResourceManager(RM)
- 处理客户端请求
- 监控NodeManager
- 启动或监控ApplicationMaster
- 资源的分配和调度
NodeManager(NM)
- 管理来自单个节点上的资源
- 处理来自ResourceManager的命令
- 处理来自ApplicationMaster的命令
ApplicationMaster(AM)
- 负责数据的切分
- 为应用程序申请资源并分配给内部的任务
- 任务的监控与容错
Container
Container的YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等
MapReduce架构
MapReduce将结果分为两个阶段:Map和Reduce
从HDFS内部看,一个文件储存到HDFS后,被分成一个或多个数据块(block),这些数据块存储在Datenode上。数据块与MapReduce的处理单位split相对应:
1.map任务处理
(a)读取文件内容,解析成key、value对。对输入文件的每一行,解析成key、value对。每一个键值对调用一个map函数。
(b)在map函数中可以编写自己的逻辑,对输入的key、value处理,转换成新的key、value输出。
©对输出的key、value进行分区。
(d)对不同分区的数据,按照key进行排序、分组。相同key的value放到一个集合中。
2.reduce任务处理
(a)对多个map任务的输出,按照不同的分区,通过网络copy到不同的reduce节点。
(b)对多个map任务的输出进行合并、排序。写reduce函数自己的逻辑,对输入的key、reduce处理,转换成新的key、value输出。
©把reduce的输出保存到文件中。