HDFS入門(六)—— DataNode(圖文詳解步驟2021)
文章目錄
- HDFS入門(六)—— DataNode(圖文詳解步驟2021)
- 6.1 DataNode 作業機制
- 6.2 資料完整性
- 6.3 DataNode掉線時限引數設定
6.1 DataNode 作業機制

(1)一個資料塊在 DataNode 上以檔案形式存盤在磁盤上,包括兩個檔案,一個是資料本身,一個是元資料包括資料塊的長度,塊資料的校驗和,以及時間戳,
(2)DataNode 啟動后向 NameNode 注冊,通過后,周期性(6 小時)的向 NameNode 上報所有的塊資訊,
相關配置引數如下:

DN 向 NN 匯報當前解讀資訊的時間間隔,默認 6 小時;
相關配置引數如下:
<property>
<name>dfs.blockreport.intervalMsec</name>
<value>21600000</value>
<description>Determines block reporting interval in
milliseconds.</description>
</property>
DN 掃描自己節點塊資訊串列的時間,默認 6 小時
相關配置引數如下:
<property>
<name>dfs.datanode.directoryscan.interval</name>
<value>21600s</value>
<description>Interval in seconds for Datanode to scan data
directories and reconcile the difference between blocks in memory and on
the disk.
Support multiple time unit suffix(case insensitive), as described
in dfs.heartbeat.interval.
</description>
</property>
(3)心跳是每 3 秒一次,心跳回傳結果帶有 NameNode 給該 DataNode 的命令如復制塊資料到另一臺機器, 或洗掉某個資料塊, 如果超過 10 分鐘+30s沒有收到某個 DataNode 的心跳,則認為該節點不可用, 就認為該節點掛了,不會再向其傳輸資訊,
(4)集群運行中可以安全加入和退出一些機器,
6.2 資料完整性
思考: 如果電腦磁盤里面存盤的資料是控制高鐵信號燈的紅燈信號 (1) 和綠燈信號 (0) ,但是存盤該資料的磁盤壞了,一直顯示是綠燈,是否很危險?同理 DataNode 節點上的資料損壞了,卻沒有發現,是否也很危險,那么如何解決呢?
如下是 DataNode 節點保證資料完整性的方法,
(1)當 DataNode 讀取 Block 的時候,它會計算 CheckSum,
(2)如果計算后的 CheckSum,與 Block 創建時值不一樣,說明 Block 已經損壞,
(3)Client 讀取其他 DataNode 上的 Block,
(4)常見的校驗演算法 crc(32),md5(128),sha1(160)
(5)DataNode 在其檔案創建后周期驗證 CheckSum,

具體校驗相關知識可以回去補計算機組成原理的課程,
6.3 DataNode掉線時限引數設定

需要注意的是 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>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/283044.html
標籤:其他
