HDFS中DataNode工作機制

2022-09-16 05:12:11 字數 1609 閱讀 2851

1.datanode工作機制

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

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

3)心跳是每3秒一次心跳返回結果帶有namenode給該datanode的命令如複製塊資料到另一台機器,或刪除某個資料塊。如果超過10分鐘

沒有收到某個datanode的心跳,則認為該節點不可用

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

2.資料完整性

1)當datanode讀取block的時候,它會計算checksum

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

3)client讀取其他datanode上的block.

4)datanode在其檔案建立後週期驗證checksum

3.datanode掉線時限引數設定

datanode程序死亡或者網路故障造成datanode無法與namenode通訊,namenode不會立即把該節點判定為死亡,要經過一段時間,這段時間暫稱作超時時長。hdfs預設的超時時長為10分鐘+30秒。如果定義超時時間為timeout,則超時時長的計算公式為:

timeout  = 2 * dfs.namenode.heartbeat.recheck-interval + 10 * dfs.heartbeat.interval
而預設的dfs.namenode.heartbeat.recheck-interval 大小為5分鐘,dfs.heartbeat.interval預設為3秒。

需要注意的是hdfs-site.xml 配置檔案中的heartbeat.recheck.interval的單位為毫秒dfs.heartbeat.interval的單位為秒

>dfs.namenode.heartbeat.recheck-interval

>300000

>> dfs.heartbeat.interval

>3

1)當

datanode

讀取block

的時候,它會計算

checksum

2)如果計算後的

checksum

,與block

建立時值不一樣,說明

block

已經損壞。3)

client

讀取其他

datanode

上的block.4)

datanode

在其檔案建立後週期驗證

checksum

HDFS中DataNode工作機制

1 datanode工作機制 1 乙個資料塊在 datanode 上以檔案形式儲存在磁碟上,包括兩個檔案,乙個是資料本身,乙個是元資料報括資料塊的長度 塊資料的校驗和以及時間戳。2 datanode 啟動後向 namenode 註冊,通過後,週期性 1小時 的向 namenode 上報所有的塊資訊。...

hdfs中datanode和namenode的坑

在聊心酸史之前,先鋪墊一下問題的由來 本來就是簡單的使用簡單操作檔案到hdfs中,同樣的 別的同學都好使,而我的不行,如下 謹記 c windows system32 drivers etc hosts做ip對映,否則連線不上 from hdfs.client import client 關於pyt...

HDFS的DataNode原始碼分析

1.大致流程 datanode.main 入口函式 securemain args,null createdatanode args,null,resources 建立datanode instantiatedatanode args,conf,resources getstoragelocatio...