在HDFS写数据的过程中,NameNode会选择距离待上传数据最近距离的DataNode接收数据。那么这个最近距离怎么计算呢?
节点距离:两个节点到达最近的共同祖先的距离总和(若不是共同祖先,即继续向上寻找)。
节点到本机架的距离为1;机架到本集群(同一数据)的距离为1;集群到集群的父亲的距离为1;
举例:
d1-r1-n1和d1-r1-n1的距离为0;
d1-r1-n1和d1-r1-n2的距离为2;(共同祖先为r1,n1到r1为1,n2到r1为1,总和为2)
d1-r1-n1和d1-r2-n3的距离为4;(共同祖先为d1,n1到r1为1,r1到d1为1,.........)
d1-r1-n1和d2-r5-n2的距离为6;(共同祖先为集群的父亲)