DataNode工作機制 & 新增節點 &下線節點

z猿猿不斷發表於2020-11-19

一、DataNode工作機制

(1)一個資料塊在DataNode上以檔案形式儲存在磁碟上,包括兩個檔案,一個是資料本身,一個是後設資料包括資料塊的長度,塊資料的校驗和,以及時間戳。

(2)DataNode啟動後向NameNode註冊,通過後,週期性(1小時)的向NameNode上報所有的塊資訊。

(3)心跳是每3秒一次,心跳返回結果帶有NameNode給該DataNode的命令如複製塊資料到另一臺機器,或刪除某個資料塊。如果超過10分鐘沒有收到某個DataNode的心跳,則認為該節點不可用。

(4)叢集執行中可以安全加入和退出一些機器。

二、資料完整性

如果電腦磁碟裡面儲存的資料是控制高鐵訊號燈的紅燈訊號(1)和綠燈訊號(0),但是儲存該資料的磁碟壞了,一直顯示是綠燈,是否很危險?同理DataNode節點上的資料損壞了,卻沒有發現,是否也很危險,那麼如何解決呢?

如下是DataNode節點保證資料完整性的方法。

(1)當DataNode讀取Block的時候,它會計算CheckSum。

(2)如果計算後的CheckSum,與Block建立時值不一樣,說明Block已經損壞。

(3)Client讀取其他DataNode上的Block。

     (4)DataNode在其檔案建立後周期驗證CheckSum。

 

三、掉線時限引數設定

需要注意的是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>

 

四、增加新資料節點

1.環境準備

(1)在hadoop103主機上再克隆一臺hadoop104主機

(2)修改IP地址和主機名稱

(3)刪除原來HDFS檔案系統留存的檔案(/work/hadoop-3.1.3/data和log)

(4)source一下配置檔案

     2.具體步驟

        (1)直接啟動DataNode,即可關聯到叢集
                  hdfs --daemon start datanode
                  sbin/yarn-daemon.sh start nodemanager

 

 (2)如果資料不均衡,可以用命令實現叢集的再平衡

          ./start-balancer.sh

五、下線資料節點

     hdfs --daemon stop datanode

     sbin/yarn-daemon.sh stop nodemanager

  去伺服器上執行這2個指令碼即可

   當最後連線時間超時後則會自動斷線

相關文章