Hadoop组成
Hadoop是一个分布式系统基础架构,主要解决海量数据的存储和海量数据的分析计算问题。
Hadoop1.x和Hadoop2.x区别:
在Hadoop1.x时代,Hadoop中的MapReduce同时处理计算和资源调度,耦合性较大,
在Hadoop2.x时代,增加了Yarn,Yarn只负责资源的调度,MapReduce只负责运算。
Hadoop组成:
HDFS架构概述
HDFS是一个文件系统,用于存储文件,其次,它是分布式的,由很多服务器联合起来实现其功能。
优点
1)高容错,数据自动保存多个副本。它通过增加副本的形式,提高容错性。一个副本丢失之后,它自动恢复。
2)适合处理大数据。
3)可构建在廉价的机器上,通过多副本机制,提高可靠性。
缺点
1)不适合低延时数据访问,比如毫秒级的存储数据,是做不到的。
2)无法高效的对大量小文件进行存储。存储大量的小文件,会占用NameNode大量的内存来存储文件目录和块信息。
而且小文件存储的寻址时间会超过读取时间,它违反了HDFS的设计目标。
3)不支持并发写入、文件随机修改。一个文件只能有一个写,不允许多个线程同时写。仅支持数据追加,不支持文件
的随机修改。
HDFS由四部分组成,HDFS Client、NameNode、DataNode和Secondary NameNode。HDFS是一个主/从体系结构,HDFS集群拥有一个NameNode和一些DataNode。NameNode管理文件系统的元数据DataNode存储实际的数据。
HDFS Client:
1、提供一些命令来管理、访问 HDFS,比如启动或者关闭HDFS。
2、与 DataNode 交互,读取或者写入数据;读取时,要与 NameNode 交互,获取文件的位置信息;写入 HDFS 的时候,Client 将文件切分成 一个一个的Block,然后进行存储。
NameNode:即Master,
1、管理 HDFS 的名称空间。
2、管理数据块(Block)映射信息
3、配置副本策略
4、处理客户端读写请求。
DataNode:就是Slave。NameNode 下达命令,DataNode 执行实际的操作。
1、存储实际的数据块。
2、执行数据块的读/写操作。
Secondary NameNode:并非 NameNode 的热备。当NameNode 挂掉的时候,它并不能马上替换 NameNode 并提供服务。
1、辅助 NameNode,分担其工作量。
2、定期合并 fsimage和fsedits,并推送给NameNode。
3、在紧急情况下,可辅助恢复 NameNode。
Yarn架构概述
YARN 是Hadoop分布式处理框架中的资源管理和作业调度技术。负责将系统资源分配给在 Hadoop 集群中运行的各种应用程序,并调度要在不同集群节点上执行的任务。
ResourceManager:
1.处理客户端请求。
2.监控NodeManager。
3.启动或监控ApplicationMaster。
4.资源的分配和调度。
NodeManager:
1.管理来自单个节点上的资源。
2.处理来自ResourceManager的命令。
3.处理来自ApplicationMaster的命令。
ApplicationMaster:
1.负责数据的切分。
2.为应用程序申请资源并分配给内部的任务。
3.任务的监控与容错。
Container:
Container的YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。
MapReduce架构概述
MapReduce负责海量数据的计算。
工作方式简单来说就是我们要数图书馆中的所有书。你数1号书架,我数2号书架。这就是“Map”。我们人越多,数书就更快。
现在我们到一起,把所有人的统计数加在一起。这就是“Reduce”。