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”。

 

版权声明:本文为手下留情原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lkylin/p/16263628.html