您好,登錄后才能下訂單哦!
這篇文章主要講解了“hadoop心跳時間與冗余快清除方法是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“hadoop心跳時間與冗余快清除方法是什么”吧!
1.Hadoop datanode節點超時時間設置
datanode進程死亡或者網絡故障造成datanode無法與namenode通信,namenode不會立即把該節點判定為死亡,要經過一段時間,這段時間暫稱作超時時長。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秒。
hdfs-site.xml中的參數設置格式:
<property>
<name>heartbeat.recheck.interval</name>
<value>2000</value>
</property>
<property>
<name>dfs.heartbeat.interval</name>
<value>1</value>
</property>
2.HDFS冗余數據塊的自動刪除
在日常維護hadoop集群的過程中發現這樣一種情況:
某個節點由于網絡故障或者DataNode進程死亡,被NameNode判定為死亡,HDFS馬上自動開始數據塊的容錯拷貝;當該節點重新添加到集群中時,由于該節點上的數據其實并沒有損壞,所以造成了HDFS上某些block的備份數超過了設定的備份數。通過觀察發現,這些多余的數據塊經過很長的一段時間才會被完全刪除掉,那么這個時間取決于什么呢?
該時間的長短跟數據塊報告的間隔時間有關。Datanode會定期將當前該結點上所有的BLOCK信息報告給Namenode,
參數dfs.blockreport.intervalMsec就是控制這個報告間隔的參數。
hdfs-site.xml文件中有一個參數:
<property>
<name>dfs.blockreport.intervalMsec</name>
<value>3600000</value>
<description>Determines block reporting interval in milliseconds.</description>
</property>
其中3600000為默認設置,3600000毫秒,即1個小時,也就是說,塊報告的時間間隔為1個小時,所以經過了很長
時間這些多余的塊才被刪除掉。通過實際測試發現,當把該參數調整的稍小一點的時候(60秒),多余的數據塊
確實很快就被刪除了。
感謝各位的閱讀,以上就是“hadoop心跳時間與冗余快清除方法是什么”的內容了,經過本文的學習后,相信大家對hadoop心跳時間與冗余快清除方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。