HDFS数据写入流程
1、HDFS客户端向NameNode请求上传文件。
2、NameNode判断文件是否存在,不存在返回客户端,可以上传。
3、HDFS客户端切分文件,上传第一个Block文件,请求NameNode
4、NameNode返回,可以上传存储的DataNode节点。
5、向DataNode请求建立传输通道。
6、HDFS客户端得到DataNode应答成功
7、HDFS客户端开始传输数据Packet,到DataNode;DataNode之间副本自行同步。
8、HDFS客户端向NameNode汇报,传输数据完成。
9、关闭文件流
HDFS各节点距离
两个节点到达最近的共同祖先的距离总和。
副本节点选择
1、第一个副本在Client所处节点上。如果客户端在集群外,随机选择一个。
2、第二个副本和第一个副本位于相同机架,不同的随机节点上。(减少网络IO)
3、第三个副本位于不同机架的随机节点上。(安全性)
HDFS数据读取流程
1、创建HDFS客户端,向NameNode请求下载文件。
2、NameNode返回目标文件的元数据。
3、HDFS客户端请求数据的各个数据块。
4、HDFS客户端将各个数据块合并
5、HDFS客户端关闭文件流。