Hadoop框架概述
什么是Hadoop?Hadoop是是由Apache基金会所开发的分布式系统的基础框架;主要解决海量数据的存储和分析计算问题,是大数据发展的起点,如今,Hadoop从广义上来说 通常指更广泛的概念–hadoop生态圈;
Hadoop的优势
Hadoop在处理大量的数据时存在4点优势:
- 高可靠性 :Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失;
- 高扩展性 :在集群间分配任务数据,可方便的扩展数以干计的节点;
- 高效性:在MapReduce的思想下, Hadoop是并行工作的,以加快任务处理速度;
- 高容错性:能够自动将失败的任务重新分配;
Hadoop的组成
1:MapReduce用于计算
2:Yarn用于调度资源
3:HDFS用于数据存储
4:Comment辅助工具
在Hadoop1.x时代,Hadoop中的MapReduce同时处理业务逻辑运算和资源的调度,耦合性较大,在Hadoop2.x时代,则增加了Yarn ,Yarn只负责资源的调度,MapReduce只负责运算。
HDFS架构
HDFS主要分为:
1)NameNode(nn):储存文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
2)DataNode(dn):在本地文件系统存储文件块数据以及块数据的检验和。
3)Secondary NameNode(2nn):每隔一段时间对NameNode元数据备份。
YARN架构
1)ResourceManager(RM)主要作用:
(1)处理客户端的请求
(2)监控NodeManager
(3)启动或监控ApplicationMaster(项目经理)
(4)资源的分配与调度
2)NodeManager(NM)主要作用:
(1)管理单个节点上的资源
(2)处理来自ResourceManager的命令
(3)处理来自ApplicationMaster的命令
3)ApplicationMaster(AM)主要作用:
(1)赋值数据的切分
(2)为应用程序申请资源并分配给内部的任务
(3)任务的监控与容错
4)Container:
是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、cpu、磁盘、网络等待;
MapReduce架构
MapReduce将计算过程分为两阶段Map和Reduce:
Map阶段并行处理输入数据
Reducer阶段对Map结果进行汇总
Hadoop是大数据处理框架的基础,现今在实际工作中已经很少回去直接编写MR,但是很多方便的框架的底层都是有它去完成的,如Hive等;