三十七、机架感知(副本节点选择)及HDFS读数据流程

版权声明:本文为博主原创文章,未经博主允许欢迎转载,请注明原文链接。一起交流,共同进步。 https://blog.csdn.net/newbie_907486852/article/details/83068329

                                       机架感知(副本节点选择)及HDFS读数据流程


1、低版本Hadoop副本节点选择

第一个副本在client所处的节点上。如果客户端在集群外,随机选一个。
第二个副本和第一个副本位于不相同机架的随机节点上。
第三个副本和第二个副本位于相同机架,节点随机。

在这里插入图片描述

2、Hadoop2.7.2以后副本节点选择

第一个副本在client所处的节点上。如果客户端在集群外,随机选一个。
第二个副本和第一个副本位于相同机架,随机节点。
第三个副本位于不同机架,随机节点。
在这里插入图片描述

       HDFS满足客户端访问副本数据的最近原则。既客户端距离那个副本最近,HDFS就让哪个节点把数据给客户端。

3、HDFS读取数据流程

在这里插入图片描述

1)客户端向namenode请求下载文件,namenode通过查询元数据,找到文件块所在的datanode地址。
2)挑选一台datanode(就近原则,然后随机)服务器,请求读取数据。
3)datanode开始传输数据给客户端(从磁盘里面读取数据放入流,以packet为单位来做校验)。
4)客户端以packet为单位接收,先在本地缓存,然后写入目标文件。

猜你喜欢

转载自blog.csdn.net/newbie_907486852/article/details/83068329