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-interval1)當>300000
>> dfs.heartbeat.interval
>3
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...