据我所知,Hadoop中的块和副本存储过程是由BlockPlacementPolicy函数或进程进行的,但这是针对初始存储过程(第一次将数据存储在HDFS系统上)。我感兴趣的是哪个进程或java函数负责恢复(通过恢复我的意思是解决重复不足的问题)磁盘或Datanode失败后的数据。我的想法是改变主管功能,根据我的需要工作,这意味着保持副本的数量并将新副本(恢复的副本)存储在我感兴趣的磁盘上。
答案 0 :(得分:0)
当节点发生故障时,存储在其中的块不再计为可用于HDFS。通过查看节点出现故障或被禁用时未复制块的数量,可以很容易地看到这一点。
通常,系统会在发生时(以及容量可用时)尝试解决重复不足问题。所以基本上你想要构建的解决方案应该已经到位。
注意:Hadoop不会尝试从损坏的节点恢复数据,而只是根据未损坏的节点复制相关的块。