在HDFS写数据的过程中,NameNode会选择距离待上传最近距离的DataNode接收数据。最近距离的值为两个节点共同祖先的距离总和。
![在这里插入图片描述](https://img-blog.csdnimg.cn/0f314eee618048898bbee33add4da534.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5aec5pil552_dQ==,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
机架感知
第一个副本在客户端所处的节点上,如果客户端在节点外,随机选一个。
第二个副本在另一个机架的随机一个节点上,位于和第一个节点相同的框架,框架中的随机节点。
第三个副本位于相邻的随机机架里的随机节点
对于以上机架感知,需要考虑的因素如下:
1:对于第一个副本选择本地机架,距离近,上传速度快。
2:第二个副本选择远程机架的随机节点,保证数据可靠性。
3: 第三个副本选择第二个副本所在机架的随机节点,同时兼顾可靠性和效率。