HDFS 冗余数据块(Block)的自动删除

本文参考:

https://www.jianshu.com/p/4e4316ae0e17

https://www.jianshu.com/p/5ef70a66019a

    在日常维护Hadoop集群的过程中,发现一种情况(Block 默认3):某节点由于网络故障或者DataNode进程的死亡,被NameNode判定为死亡(此时位2),HDFS马上自动开始数据块的容错拷贝(从2到3)。当该节点重新添加到集群中时(从3到4),由于该节点上的数据没有损坏,所以造成了HDFS上的某些Block的备份数超过设定的数目。

    通过观察发现,这些多余的数据块经过很长的一段时间才会被完全删除掉。那么这个时间取决于什么呢?

该时间的长短跟数据块报告的时间间隔有关。DataNode会周期性的发送“心跳”信息,发送给NameNode,并携带所有的块信息。参数

<property>
    <name>dfs.blockreport.intervalMsec</name>
    <value>3600000</value>
    <description>Determines block reporting interval in milliseconds.</description>
</property>

其中,360000为默认设置,360000毫秒。即一小时,也就是说一小时为一个时间间隔去删除冗余的副本数据。可以设置其时间间隔,来调整处理冗余数据的时间。

猜你喜欢

转载自blog.csdn.net/qq_34516081/article/details/81353469
今日推荐