這一講主要深刻使用HDFS命令行工具操做Hadoop分佈式集羣,主要是經過實驗的配置hdfs-site.xml文件的心跳來測試replication具體的工做和流程。html
經過HDFS的心跳來測試replication具體的工做機制和流程的PDF版本請猛擊這裏。node
王家林的「雲計算分佈式大數據Hadoop實戰高手之路」之完整發布目錄web
雲計算分佈式大數據實戰技術Hadoop交流羣:312494188,天天都會在羣中發佈雲計算實戰性資料,歡迎你們加入!分佈式
當咱們上傳文件時候文件會保存2份副本:工具
下面咱們經過實驗的方式探究replication屬性配置的做用。oop
首先關閉集羣:測試
而後修改hadoop.main這臺機器上的hdfs-site.xml配置文件:大數據
在這個配置文件中加入新的配置信息:雲計算
保存退出。spa
新加入的配置信息:
的具體含義是當DataNode和NameNode的心跳失去鏈接的時間超過15秒以後,Hadoop系統就會認爲這個DataNode已經死亡,此時Hadoop會把這個DataNode標記爲不能工做的狀態,之後若是客戶端去 訪問數據的時候,Hadoop就不會嘗試到這個DataNode去獲取數據。
下面看一下其工做的具體方式:
首先啓動HDFS:
進入HDFS的Web監控臺的Node頁面:
咱們發現hadoop.main和hadoop.slave這兩個DataNode均在正常的工做中。
咱們觀察到「Last Contact」選項的數據,該數據是代表DataNode和NameNode最近聯繫的心跳成功的時間,咱們再次刷新頁面看一下這個數據:
咱們發現這個具體的數據時比較低的。
此時咱們經過命令行工做查看datanode進程:
咱們發現hadoop.main上運行的DataNode節點的進程是16228,咱們把這個DataNode殺掉:
咱們再次刷新HDFS的Node的控制檯:
繼續刷新:
繼續刷新:
能夠發現第一個DataNode的心跳時間不斷的在增長,同時在第三次刷新的時候心跳間隔時間爲25,這個數據超過咱們配置文件中的15,再刷新一次:
此時發現只有一個正在服務的DataNode,由於咱們的Hadoop.main中的DataNode心跳間隔時間超過了15秒,Hadoop此時把把該節點標記爲無效節點。
咱們返回文件系統頁面看一下咱們上傳的文件存儲信息:
此外發現文件的可訪問信息只是存放在了hadoop.slave這個節點中了,固然,此時咱們仍是能夠正常的訪問文件,雖然只有一份可用副本,這就是replication節點的做用,咱們在配置該節點的時候把值設置爲2,代表同一個文件在HDFS中有兩個副本,當一個運行DataNode的進程由於某些緣由不能工做的時候,咱們依舊可使用剩餘的一份副本工做,這不會影響客戶端對數據的訪問。