HDFS掉线时限参数设置
掉线时的参数设置
讲解分析
【1】datanode进程死亡或者网络故障造成datanode无法与namendoe通 信,namenode不会立即把该节点判定为死亡,要经过一段时间,这段时间赞称为超时时长。HDFS默认的超时时长为10分钟+30秒。
如果定义超时时间为timeout,则超时时长计算公式为:
timeout = 2 * dfs.namenode.heartbeat.recheck-interval + 10 * dfs.heartbeat.interval
【2】而默认的dfs.namenode.heartbeat.recheck-interval 大小为5分钟,dfs.heartbeat.interval默认为3秒
【3】需要注意的是hdfs-site.xml 配置文件中的heartbeat.recheck.interval的单位为毫秒,dfs.heartbeat.interval的单位为秒。
<property>
<name>dfs.namenode.heartbeat.recheck-interval</name>
<value>300000</value>
</property>
<property>
<name> dfs.heartbeat.interval </name>
<value>3</value>
</property>
案例
【需求】要求HDFS掉线时限timeout为2分钟,已知DataNode的心跳检测间隔时间为2s,计算重新检测时长,并将此两个参数配置写入配置文件。
【分析】
[公式]
timeout = 2 * dfs.namenode.heartbeat.recheck-interval + 10 * dfs.heartbeat.interval
则 timeout = 2分钟; dfs.heartbeat.interval = 2 秒
求 dfs.namenode.heartbeat.recheck-interval的参数
【这里需将所有值准换为以毫秒为单位进行计算】
<property>
<name>dfs.namenode.heartbeat.recheck-interval</name>
<value>50000</value>
</property>
<property>
<name> dfs.heartbeat.interval </name>
<value>3</value>
</property>