經過本教程您能夠學習到:node
前面咱們學習了namenode的工做機制,接下來咱們看看工做節點datanode的工做機制,以下圖所示:安全
(1)一個數據塊在datanode上以文件形式存儲在磁盤上,包括兩個文件,一個是數據自己,一個是元數據包括數據塊的長度,塊數據的校驗和,以及時間戳。網絡
(2)DataNode啓動後向namenode註冊,經過後,週期性(1小時)的向namenode上報全部的塊信息。ide
(3)心跳是每3秒一次,心跳返回結果帶有namenode給該datanode的命令如複製塊數據到另外一臺機器,或刪除某個數據塊。若是超過10分鐘沒有收到某個datanode的心跳,則認爲該節點不可用。oop
(4)集羣運行中能夠安全加入和退出一些機器。學習
datanode進程死亡或者網絡故障形成datanode沒法與namenode通訊,namenode不會當即把該節點斷定爲死亡,要通過一段時間,這段時間暫稱做超時時長。ui
HDFS默認的超時時長爲10分鐘+30秒。若是定義超時時間爲timeout,則超時時長的計算公式爲:this
timeout = 2 * dfs.namenode.heartbeat.recheck-interval + 10 * dfs.heartbeat.interval。
默認的dfs.namenode.heartbeat.recheck-interval大小爲5分鐘,dfs.heartbeat.interval默認爲3秒。咱們能夠查看其默認配置:spa
<property> <name>dfs.namenode.heartbeat.recheck-interval</name> <value>300000</value> <description> This time decides the interval to check for expired datanodes. With this value and dfs.heartbeat.interval, the interval of deciding the datanode is stale or not is also calculated. The unit of this configuration is millisecond. </description> </property> <property> <name>dfs.heartbeat.interval</name> <value>3</value> <description>Determines datanode heartbeat interval in seconds.</description> </property>
須要注意的是hdfs-site.xml 配置文件中的heartbeat.recheck.interval的單位爲毫秒,dfs.heartbeat.interval的單位爲秒。code
關於數據校驗的相關知識,能夠參考一些其餘的資料,這是一門很值得學習的學科。
和namenode不一樣的是,datanode的存儲目錄是初始階段自動建立的,不須要額外格式化。
一、在/opt/module/hadoop-2.7.2/data/tmp/dfs/data/current這個目錄下查看版本號
[root@h135 current]# pwd /opt/module/hadoop-2.7.2/data/tmp/dfs/data/current [root@h135 current]# cat VERSION #Sun Jan 06 03:09:44 CST 2019 storageID=DS-dac42eb2-3c51-4489-9d89-b88f3a70a604 clusterID=CID-5b84c9ed-504a-4885-9e26-b9e99eefaf21 cTime=0 datanodeUuid=c36a1e36-33fd-4074-b13a-ba1e632762bd storageType=DATA_NODE layoutVersion=-56
二、在這裏深層次進入,還有一個current,這個目錄下查看該數據塊的版本號
[root@h135 current]# pwd /opt/module/hadoop-2.7.2/data/tmp/dfs/data/current/BP-2054658932-192.168.102.133-1546499444184/current [root@h135 current]# cat VERSION #Sun Jan 06 03:09:44 CST 2019 namespaceID=1140718114 cTime=0 blockpoolID=BP-2054658932-192.168.102.133-1546499444184 layoutVersion=-56