Hadoop集群网络性能优化:Hadoop机架感知实现及配(2)

当对某个文件的某个block进行读取的时候,hadoop采取的策略也是一样:
1.    首先得到这个block所在的datanode的列表,有几个副本数该列表就有几个datanode。
2.    根据列表中datanode距离读取端的距离进行从小到大的排序:
a)    首先查找本地是否存在该block的副本,如果存在,则将本地datanode作为第一个读取该block的datanode
b)    然后查找本地的同一个rack下是否有保存了该block副本的datanode
c)    最后如果都没有找到,或者读取数据的node本身不是datanode节点,则返回datanode列表的一个随机顺序。
程序逻辑
对写副本时的选择datanoe选择逻辑代码如下:

    对于hadoop写数据block副本的策略代码如下:
 

读取block时对block所在的datanode进行由近到远的排序程序逻辑如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/pxpsd.html