when30 发表于 2013-10-25 10:43:43

hadoop数据存储时,按照什么算法确定哪些datanode和block存储及副本block位置

跪求各位大虾,如题,谢谢!

xiaolongwu1987 发表于 2013-10-25 10:43:43

存储算法:
如果设置了threshold,namenode会先找没有达到threshold的节点存放,然后第一个副本存放在该节点的同一个rack的相邻datanode上,第二个副本在不同rack的datanode上。 如果没有threshold,是随机存放。
副本位置:
副本的命名是一样的。namenode内存中保留了一个表,这个表里面包含了每个block在什么为止。可以看看sourcecode。

qz2003 发表于 2013-10-25 10:43:43

恩,好的,谢谢

shihailong123 发表于 2013-10-25 10:43:43

回复 2# airbots
    不好意思,能给个具体的实现代码给我吗,谢谢

nettman 发表于 2014-6-2 16:58:13

位置信息存储在BlocksMap中
详细可以查看
深度了解namenode---其 内部关键数据结构原理简介



BlocksMap的作用是什么?
BlocksMap实际上就是一个Block对象对BlockInfo对象的一个Map表
页: [1]
查看完整版本: hadoop数据存储时,按照什么算法确定哪些datanode和block存储及副本block位置