如果数据节点发生故障,我需要重新复制 HDFS 集群上的块。实际上,这种情况似乎在大约 10 分钟后就已经发生了。但是,我想减少这个时间,但不知道该怎么做。
我尝试设置dfs.namenode.check.stale.datanode
,但没有什么大的成功。那么配置选项是什么,或者我必须调整哪些选项才能将其减少到 1 分钟?
hdfs-site.xml 的完整部分如下所示
<property>
<name>dfs.namenode.check.stale.datanode</name>
<value>true</value>
<description>Activate stale check</description>
</property>
<property>
<name>dfs.namenode.stale.datanode.interval</name>
<value>10</value>
<description>Timeout</description>
</property>
答案1
根据讨论hadoop 用户邮件列表似乎dfs.namenode.heartbeat.recheck-interval
需要在里面设置hdfs-site.xml
。数据节点被标记为死亡的时间是从这个时间与计算出来的dfs.heartbeat.interval
。事实上,一个配置
<property>
<name>dfs.namenode.heartbeat.recheck-interval</name>
<value>10000</value>
</property>
导致节点被标记为死亡需要约 45 秒的时间。(这适用于 Hadoop 2.6 版)