Hadoop 的优势
高可靠性: Hadoop 底层维护多个数据副本,所以即使 Hadoop 某个计算元素或存储出现故障,也不会导致数据的丢失。
高扩展性: 在集群间分配任务数据,可方便的扩展数以千计的节点。
高效性: 在 MapReduce 的思想下,Hadoop 是并行工作的,以加快任务处理速度。
高容错性: 能够自动将失败的任务重新分配。
Hadoop 1.x 和 hadoop 2.x 的区别
在 Hadoop 1.x 时代,Hadoop 中的 MapReduce 同时处理业务逻辑运算和资源调度,耦合性较大。
在 Hadoop 2.x 时代,增加了 Yarn。Yarn 只负责资源的调度,MapReduce 只负责运算。
HDFS 框架概述
① NameNode(nn): 存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块所在的 DataNode 等。
② DataNode(dn): 在本地文件系统存储文件块数据,以及块数据校验和。
③ Secondary DataNode(2nn): 用来监控 HDFS 状态的辅助后台程序,每隔一段时间获取 HDFS 元数据的快照。
Yarn 结构概述
① ResourceManager(RM):
(1)处理客户端请求。
(2)监控 NodeManager。
(3)启动或监控 ApplicationMaster。
(4)资源的分配与调度。
② NodeManager(NM):
(1)管理单个节点上的资源。
(2)处理来自 ResourceManager 的命令。
(3)处理来自 ApplicationMaster 的命令。
(4)资源的分配与调度。
③ ApplicationMaster(AM):
(1)负责数据的切分。
(2)为应用程序申请资源并分配给内部的任务。
(3)任务的监控与容错。
④ Container:
Container 是 Yarn 中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。
MapReduce 架构概述
MapReduce 将计算过程分为两个阶段:Map 阶段和 Reduce 阶段。
① Map 阶段并行处理输入的数据。
② Reduce 阶段对 Map 结果进行汇总。