hadoop之 HDFS-Hadoop存檔

張衝andy發表於2017-09-07
  • 每個檔案按塊方式儲存, 每個塊的後設資料儲存在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不知道檔案已經存檔

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2144659/,如需轉載,請註明出處,否則將追究法律責任。

相關文章