1. 程式人生 > >Hadoop Core_HDFS總結(二)

Hadoop Core_HDFS總結(二)

三、HDFS高可靠性措施

1)冗餘備份

資料儲存在這些 HDFS 中的節點上,為了防止因為某個節點宕機而導致資料丟失,HDFS 對資料進行冗餘備份,至於具體冗餘多少個副本,在 dfs.replication 中配置。

2)跨機架副本存放

僅僅對資料進行冗餘備份還不夠,假設所有的備份都在一個節點上,那麼該節點宕機後,資料一樣會丟失, 因此 HDFS 要有一個好的副本存放策略, 該策略還在開發中。目前使用的是, 以dfs.replication=3 為例,在同一機架的兩個節點上各備份一個副本,然後在另一個機架的某個節點上再放一個副本。前者防止該機架的某個節點宕機,後者防止某個機架宕機。

3)心跳檢測

DataNode 節點定時向 NameNode 節點發送心跳包,以確保 DataNode 沒有宕機。如果宕機,會採取相應措施,比如資料副本的備份。

4)資料完整性檢測

NameNode 在建立 HDFS 檔案時,會計算每個資料的校驗和並儲存起來。當客戶端從 DataNode 獲取資料時,他會將獲取的資料的校驗和與之前儲存的校驗和進行對比。

5)安全模式

HDFS 啟動時,會進入安全模式,此時不允許寫操作。這時,NameNode 會收到所有 DataNode 節點的資料塊報告,在確認安全之後,系統自動退出安全模式。

6)核心檔案備份

HDFS 的核心檔案是映像檔案和事務日誌,如果這些檔案損壞,將會導致 HDFS 不可用。系統支援對這兩個檔案的備份,以確保 NameNode 宕機後的恢復。

7)空間回收

從 HDFS 中刪除的檔案會首先被放入到/trash 中,/trash 資料夾中的內容是被刪除檔案最後的副本,該資料夾會被定時清空。該資料夾中不存在的檔案就徹底不存在了。

四、HDFS shell應用

1、HDFS shell命令分類

2、hdfs dfs 常用命令

1)檢視所有命令   hdfs dfs

2) 檢視某目錄下檔案列表   

    檢視hdfs根目錄下的檔案列表     

      hdfs dfs -ls /

    檢視指定目錄下的資料夾及檔案 

     hdfs dfs -lsr /

3)  檢視某文字檔案的內容 

     hdfs dfs -cat  /tmp/index.html

4) 建立目錄 

  hdfs dfs -mkdir -p /tmp/edu

5) 刪除目錄 

  hdfs dfs -rmr /tmp/edu

6) 從hdfs下載檔案

  hdfs dfs -copyToLocal  /tmp/index.html

7)從本地上傳檔案到hdfs 

  hdfs dfs -copyFromLocal index.html  /tmp/edu

8) 檢視壓縮的文字內容 

  hdfs dfs -text /tmp/edu/index.gz 

9) 檢視檔案大小   

  hdfs dfs -du -h /tmp/tianliangedu

10) 建立檔案 

  hdfs dfs -touchz /tmp/tianliangedu/HelloWorld.txt

3、hdfs dfsadmin

hdfs dfsadmin 是叢集管理員 的常用命令,用來對 HDFS 叢集的整體執行進行管理和運維。常用的管理命令如下:

1)檢視可用的管理命令

hdfs dfsadmin -help

2)報告檔案系統資訊

hdfs dfsadmin -report

3)設定目錄配額

hdfs dfsadmin -setQuota <quota> <dirname>……<dirname>

比如:hdfs dfsadmin -setQuota 10 /tmp/tianliangedu

4)安全模式管理

當叢集環境啟動時,NameNode 會進入一個安全模式。此時不會出現資料塊的寫操作。NameNode 會收到各個 DataNode 擁有的資料塊列表的資料塊報告,由此 NameNode 獲得所有的資料塊資訊。資料塊達到最小副本數時,該資料塊就被認為是安全的。

hdfs dfsadmin -safemode get ##返回安全模式是否開啟的資訊,返回 Safe mode is OFF/OPEN

hdfs dfsadmin -safemode enter ##進入安全模式

hdfs dfsadmin -safemode leave ##強制 NameNode 退出安全模式

hdfs dfsadmin -safemode wait ##等待,一直到安全模式結束