做作業的過程中發現,把一節點停掉,dfsadmin和50070都無法馬上感知到一個data node已經死掉
HDFS默認的超時時間為10分鍾+30秒。
這里暫且定義超時時間為timeout
計算公式為:
timeout = 2 * heartbeat.recheck.interval + 10 * dfs.heartbeat.interval
而默認的heartbeat.recheck.interval 大小為5分鍾,dfs.heartbeat.interval默認的大小為3秒。
需要注意的是hdfs-site.xml 配置文件中的heartbeat.recheck.interval的單位為毫秒,dfs.heartbeat.interval的單位為秒
所以,舉個例子,如果heartbeat.recheck.interval設置為5000(毫秒),dfs.heartbeat.interval設置為3(秒,默認),則總的超時時間為40秒
<property>
<name>heartbeat.recheck.interval</name>
<value>5000</value>
</property>
<property>
<name>dfs.heartbeat.interval</name>
<value>3</value>
</property>
參考 http://f.dataguru.cn/thread-128378-1-1.html
--------------------------
Linux環境:CentOs6.4
Hadoop版本:Hadoop-1.1.2
master: 192.168.1.241 NameNode JobTracker DataNode TaskTracker
slave:192.168.1.242 DataNode TaskTracker
內容:設置DataNode的心跳,當某一個節點失去連接之后,在超過設置的時間,看hadoop能否正常工作。
設置時間:
<property>
<name>heartbeat.recheck.interval</name>
<value>15</value>
</property>
第一步: 配置hdfs-site.xml
第二步:重啟Hadoop
第三步:通過網頁瀏覽兩個節點的狀態。
hadoop兩個節點都已正常運行。
第三步:殺死主節點的進程,等待15秒。
通過kill命令殺死master上的DataNode節點。
第四步:查看節點狀態
活着的DataNode還有1個,死亡的DataNode一個
master上的DataNode節點已經標識為Dead
只剩下slave節點,其最后連接時間是2秒(Last Contact 2)
殺死一個節點,兩一個節點仍能夠正常查看文件信息。
只有slave節點在運行。