1. 程式人生 > >hadoop之 HDFS-Hadoop存檔

hadoop之 HDFS-Hadoop存檔

文件的 指定 文件創建 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存檔