Hadoop
是Apache基金会开发的分布式系统基础架构;主要解决海量数据的存储和数据的分析计算问题;Hadoop通常泛指Hadoop生态圈。
Hadoop的优势
1)高可靠性:Hadoop底层有多个副本,某个存储出现故障也不会导致数据丢失;
2)高扩展性:方便扩展节点,提升性能;
3)高效性:常规下难以处理的海量数据,在MapReduce的方式下可以在短时间内处理;
4)高容错性:运行失败的任务自动重新分配。
Hadoop的组成
Hadoop1.x
HDFS(数据存储);
MapReduce(计算和资源调度);
Common(辅助工具);
Hadoop2.x
HDFS(数据存储);
MapReduce(计算);
Yarn(资源调度)
Common(辅助工具);
HDFS架构
NameNode(nn)
存储文件的元数据,例如:文件名、文件目录结构、文件熟悉,以及每个文件的块列表和块所在的DataNode;
Secndary Namenode(sn)
每隔一段时间对NameNode元数据进行备份;
DataNode(dn)
在本地文件系统存储文件块数据,以及块数据的校验和。
Yarn架构
ResourceManager(RM)
1)处理客户端请求;
2)监控NodeManager;
3)启动或者监控ApplicationMaster
4)资源分配和调度
NodeManager(NM)
1)管理节点上的资源
2)处理来自ResourceManager的命令
3)处理来自ApplicationMaster的命令
ApplicationMaster(AM)
1)负责数据切分
2)为应用程序申请资源并分配给内部的任务
3)任务的监控与容错
Container
是Yarn中的资源抽象,封装了某个节点上的多维度资源:CPU、内存、磁盘、网络等待。
MapReduce架构
MapReduce将计算过程分为两个阶段:
1)Map:并行处理输入数据;
2)Reduce:对Map结果进行汇总。