資料完整性
1)、當datanode讀取block的時候,它會計算checksum
2)、如果計算後的checksum,與block建立時值不一樣,說明block已經損壞
3)、client讀取其他datanode上的block
4)、datanode在其檔案建立後週期驗證checksum
掉線時限引數設定
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
datanode的目錄結構
和namenode不同的是,datanode的儲存目錄是初始階段自動建立的,不需要額外格式化
1)在/opt/module/hadoop-2.7.2/data/tmp/dfs/data/current這個目錄下檢視版本號
[***@*** current]$ cat version
storageid=ds-1b998a1d-71a3-43d5-82dc-c0ff3294921b
clusterid=cid-1f2bf8d1-5ad2-4202-af1c-6713ab381175
ctime=0
datanodeuuid=970b2daf-63b8-4e17-a514-d81741392165
storagetype=data_node
layoutversion=-56
2)具體解釋
(1)、storageid:儲存id號
(2)、clusterid:集群id,全域性唯一標識
(3)、ctime屬性標記了datanode儲存系統的建立時間,對於剛剛格式化的儲存系統,這個屬性為0,但是在檔案系統公升級後,該值會更新到新的時間戳
(4)、datanodeunid:datanode的唯一識別碼
(5)、storagetype:儲存型別
(6)、layoutversion是乙個負整數,通常只有hdfs增加新特性時才會更新這個版本
datanode工作機制詳解
datanode 的工作機制 問題場景 1 集群容量不夠,怎麼擴容?2 如果有一些 datanode 宕機,該怎麼辦?3 datanode 明明已啟動,但是集群中的可用 datanode 列表中就是沒有,怎麼辦?1 概述1 datanode工作職責 儲存管理使用者的檔案塊資料 定期向namenode...
HDFS中DataNode工作機制
1 datanode工作機制 1 乙個資料塊在 datanode 上以檔案形式儲存在磁碟上,包括兩個檔案,乙個是資料本身,乙個是元資料報括資料塊的長度 塊資料的校驗和以及時間戳。2 datanode 啟動後向 namenode 註冊,通過後,週期性 1小時 的向 namenode 上報所有的塊資訊。...
HDFS中DataNode工作機制
1.datanode工作機制 1 乙個資料塊在datanode上以檔案形式儲存在磁碟上,包括兩個檔案,乙個是資料本身,乙個是元資料 包括資料塊的長度,塊資料的校驗和,以及時間戳 2 datanode啟動後向namenode註冊,通過後,週期性 1小時 的向namenode上報所有的塊資訊。3 心跳是...