hadoop之 HDFS-Hadoop存檔
阿新 • • 發佈:2017-09-07
文件的 指定 文件創建 ruby 所有 元數據 不能 選項 輸入
- 每個文件按塊方式存儲, 每個塊的元數據存儲在namenode的內存中
- Hadoop存檔文件或HAR文件是一個更高效的文件存檔工具,它將文件存入HDFS塊,在減少內存使用的同時,允許對文件進行透明地訪問
- Hadoop存檔文件可以用作MapReduce的輸入
使用Hadoop存檔工具
- Hadoop存檔是通過archive工具根據一組文件創建而來的,該存檔工具運行一個MapReduce作業來並行處理所有的輸入文件
- 使用archive
hadoop archive -archiveName files.har /my/files /my
- 第一個選項是存檔文件的名稱,這裏是第一個參數 file.har
- 第二個參數是需要存檔的文件
- 第三個參數是HAR文件的輸出目錄
- 列出HAR文件中的文件
hadoop fs -ls /my/files.har
-
遞歸列出HAR文件中的文件
hadoop fs -lsr /my/files.har
-
其他文件系統中引用HAR文件,則需要使用不同的URI路徑格式,示例如下
hadoop fs -lsr har:///my/files.har/my/files/dir
hadoop fs -lsr har://hdfs-localhost:8020/my/files.har/my/files/dir
第二種格式仍以har方案標示一個HAR文件系統,但是用hdfs指定基礎文件系統方案的權限
-
要刪除HAR文件,需要使用遞歸格式進行刪除,因為對於基礎文件系統來說,HAR文件是一個目錄
hadoop fs -rmr /my/files.har
不足
- 新建一個存檔文件會創建原始文件的一個副本
- 一旦創建,不能修改
- InputFormat不知道文件已經存檔
hadoop之 HDFS-Hadoop存檔