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。