Hadoop的两大功能:海量数据存储和海量数据分析

Hadoop2的三大核心组件是:HDFS、MapperReducer和yarn

1、HDFS:分布式文件系统海量数据存储

2、MapperReducer:运算框架,海量数据分析

3、yarn:资源调度管理集群

        HDFS工作机制:基于namenode和datanode

1、namenode:响应客户端的请求;负责维护整个hdfs文件系统的文件夹树。以及每个路径(文件)所相应的block块信息(block的id,及所在的datanodeserver);
元数据的管理

2、datanode:存储管理用户的文件数据;定期向namenode汇报自己所持有的block信息(通过心跳机制RPC)

Namenode安全模式:1)、当nameonde发现文件block丢失的数量达到一个配置的门限时。就会进入安全模式,它在这个模式下等待datanode向它汇报block信息;2)、在
安全模式下。namenode能够提供元数据查询的功能。可是不能改动。

HDFS读流程:

1、跟namenode通信查询元数据。找到文件块所在的datanodeserver

2、挑选一台datanode(就近原则。然后随机)server,请求建立socket流

3、datanode開始发送数据(从磁盘里面读取数据放入流。以packet为单位来做校验)

4、客户端以packet为单位接收,如今本地缓存,然后写入目标文件

HDFS写流程:

1、根namenode通信请求上传文件,namenode检查目标文件是否已存在,父文件夹是否存在

2、namenode返回能否够上传

3、client请求第一个 block该传输到哪些datanodeserver上

4、namenode返回3个datanodeserverABC

5、client请求3台dn中的一台A上传数据(本质上是一个RPC调用。建立pipeline),A收到请求会继续调用B,然后B调用C,将真个pipeline建立完毕。逐级返回客户端

6、client開始往A上传第一个block(先从磁盘读取数据放到一个本地内存缓存)。以packet为单位,A收到一个packet就会传给B,B传给C;A每传一个packet会放入一个应答队列等待应答

7、当一个block传输完毕之后,client再次请求namenode上传第二个block的server。

05-28 20:35