九、HDFS 2.X新特性

一、集羣間數據拷貝

  1. scp實現兩個遠程主機之間的文件複製
    scp -r hello.txt root@hadoop103:/user/kino/hello.txt		// 推 push
    scp -r root@hadoop103:/user/kino/hello.txt  hello.txt		// 拉 pull
    scp -r root@hadoop103:/user/kino/hello.txt root@hadoop104:/user/kino  //是通過本地主機中轉實現兩個遠程主機的文件複製;如果在兩個遠程主機之間ssh沒有配置的情況下可以使用該方式。
    
  2. 採用distcp命令實現兩個Hadoop集羣之間的遞歸數據複製
[kino@hadoop102 hadoop-2.7.2]$  bin/hadoop distcp
hdfs://hadoop102:9000/user/kino/hello.txt 
hdfs://hadoop103:9000/user/kino/hello.txt

二、小文件存檔

  1. HDFS 存儲小文件弊端
    每個文件均按照塊存儲, 每個塊的元數據存儲在 NameNode 的內存中, 因此 HDFS 存儲小文件會非常低效。 因爲 大量的小文件會耗盡 NameNode 中的大部分內存。 單注意, 存儲小文件所需要的磁盤容量和數據塊的大小無關。 例如, 一個 1MB 的文件設置爲 128M 的塊存儲, 實際上使用的是 1MB 的磁盤空間, 而非 128MB。

  2. 解決存儲小文件辦法之一
    HDFS 存檔文件或 HAR 文件, 是一個更高效的文件存檔工具, 她將文件存入 HDFS 塊, 在減少 NameNode 內存使用的同事, 允許對文件進行透明的訪問。 具體說來, HDFS 存檔文件對內還是一個個獨立的文件, 對 NameNode 而言卻是一個整體, 減少了 NameNode 的內存。
    在這裏插入圖片描述

  3. 案例
    ① 需要啓動 YARN 進程
    [kino@hadoop102 hadoop-2.7.2]$ start-yarn.sh
    ② 歸檔文件
    把/user/kino/input目錄裏面的所有文件歸檔成一個叫input.har的歸檔文件,並把歸檔後文件存儲到/user/kino/output路徑下

    [kino@hadoop102 hadoop-2.7.2]$ bin/hadoop archive -archiveName input.har –p  /user/kino/input   /user/kino/output
    

    ③ 查看歸檔

    [kino@hadoop102 hadoop-2.7.2]$ hadoop fs -lsr /user/kino/output/input.har
    [kino@hadoop102 hadoop-2.7.2]$ hadoop fs -lsr har:///user/kino/output/input.har
    
    

    ④ 解歸檔文件

    [kino@hadoop102 hadoop-2.7.2]$ hadoop fs -cp har:/// user/kino/output/input.har/*    /user/kino
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章