(一)Hadoop组成

Hadoop的优势

  1. 高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失
  2. 高拓展性:在集群间分配任务数据,可方便的拓展数以千计的节点
  3. 高效性:在MR的思想下,Hadoop是并行工作的,以加快任务处理速度
  4. 高容错性:能够自动将失败的任务重新分配

Hadoop的组成:

(一)Hadoop组成

HDFS(数据存储)架构概述

NameNode(nn)

存储文件的元数据,如文件名,文件目录结构,文件属性,以及每个文件的块列表和块所在的Datanode //书籍目录

DataNode(dn)

在本地文件系统存储文件块数据,以及数据的校检和。 //书籍内容

Secondary NameNode(2nm)

用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照

YARN(资源调度)架构概述

(一)Hadoop组成

ResourceManager(RM)

  1. 处理客户端请求
  2. 监控NodeManager
  3. 启动或监控ApplicationMaster
  4. 资源的分配和调度

NodeManager(NM)

  1. 管理来自单个节点上的资源
  2. 处理来自ResourceManager的命令
  3. 处理来自ApplicationMaster的命令

ApplicationMaster(AM)

  1. 负责数据的切分
  2. 为应用程序申请资源并分配给内部的任务
  3. 任务的监控与容错

Container

Container的YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等

MapReduce架构

MapReduce将结果分为两个阶段:Map和Reduce
从HDFS内部看,一个文件储存到HDFS后,被分成一个或多个数据块(block),这些数据块存储在Datenode上。数据块与MapReduce的处理单位split相对应:

(一)Hadoop组成
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的输出保存到文件中。