hadoop数据存储时,按照什么算法确定哪些datanode和block存储及副本block位置
跪求各位大虾,如题,谢谢! 存储算法:如果设置了threshold,namenode会先找没有达到threshold的节点存放,然后第一个副本存放在该节点的同一个rack的相邻datanode上,第二个副本在不同rack的datanode上。 如果没有threshold,是随机存放。
副本位置:
副本的命名是一样的。namenode内存中保留了一个表,这个表里面包含了每个block在什么为止。可以看看sourcecode。 恩,好的,谢谢 回复 2# airbots
不好意思,能给个具体的实现代码给我吗,谢谢 位置信息存储在BlocksMap中
详细可以查看
深度了解namenode---其 内部关键数据结构原理简介
BlocksMap的作用是什么?
BlocksMap实际上就是一个Block对象对BlockInfo对象的一个Map表
页:
[1]