天天看點

DataNode(面試開發重點)

DataNode(面試開發重點)

一、DataNode工作機制

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。

DataNode(面試開發重點)

三、掉線時限參數設定

DataNode(面試開發重點)

需要注意的是hdfs-site.xml 配置檔案中的heartbeat.recheck.interval的機關為毫秒,dfs.heartbeat.interval的機關為秒。

四、服役新資料節點

1)需求

随着公司業務的增長,資料量越來越大,原有的資料節點的容量已經不能滿足存儲資料的需求,需要在原有叢集基礎上動态添加新的資料節點。

2)環境準備

(1)在hadoop104主機上再克隆一台hadoop105主機

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

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

(4)source一下配置檔案

3)服役新節點具體步驟

(1)直接啟動DataNode,即可關聯到叢集

(2)在hadoop105上上傳檔案

(3)如果資料不均衡,可以用指令實作叢集的再平衡

五、退役舊資料節點

1 添加白名單

添加到白名單的主機節點,都允許通路NameNode,不在白名單的主機節點,都會被退出。

配置白名單的具體步驟如下:

1)在NameNode的/opt/module/hadoop-3.1.3/etc/hadoop目錄下建立dfs.hosts檔案

添加如下主機名稱(不添加hadoop105)

2)在NameNode的hdfs-site.xml配置檔案中增加dfs.hosts屬性

3)配置檔案分發

4)重新整理NameNode

5)更新ResourceManager節點

6)在web浏覽器上檢視

7)如果資料不均衡,可以用指令實作叢集的再平衡

2 黑名單退役

在黑名單上面的主機都會被強制退出。

1)在NameNode的/opt/module/hadoop-3.1.3/etc/hadoop目錄下建立dfs.hosts.exclude檔案

添加如下主機名稱(要退役的節點)

hadoop105

2)在NameNode的hdfs-site.xml配置檔案中增加dfs.hosts.exclude屬性

3)重新整理NameNode、重新整理ResourceManager

4)檢查Web浏覽器,退役節點的狀态為decommission in progress(退役中),說明資料節點正在複制塊到其他節點

5)等待退役節點狀态為decommissioned(所有塊已經複制完成),停止該節點及節點資料總管。注意:如果副本數是3,服役的節點小于等于3,是不能退役成功的,需要修改副本數後才能退役

6)如果資料不均衡,可以用指令實作叢集的再平衡

注意:不允許白名單和黑名單中同時出現同一個主機名稱。

六、Datanode多目錄配置

1)DataNode也可以配置成多個目錄,每個目錄存儲的資料不一樣。即:資料不是副本

2)具體配置如下

hdfs-site.xml

繼續閱讀