萨尔法保护 发表于 2016-12-8 08:57:39

Hadoop Archives *.har文件解析备忘

mark:HarFileSystem
source:hadoop-common-2.0.0-cdh4.3.0.jar
      为了节省NN的元数据,可以将HDFS上的不再变化的小文件归档。Hadoop archives是Hadoop自带的特殊的档案格式。一个Hadoop archive对应一个文件系统目录。 Hadoop archive的扩展名是*.har。Hadoop archive目录结构如下:
NameTypeSize_SUCCESSfile0 B_indexfile599 B_masterindexfile23 Bpart-0file48 B
      【说明:】
      1. *.har在HDFS上是一个目录,不是一个文件。
      2. _index和_masterindx为元数据信息。
      3. part-*为真实数据集。
      看下_index文件及part-0中都存了些什么:
      _index:

%2F dir 1378884867194+493+cdh4+supergroup 0 0 123.txt 2013 3.txt
%2F2013 dir 1378884762156+493+cdh4+supergroup 0 0 09
%2F2013%2F09%2F10%2F1.txt file part-0 12 12 1378883181096+420+cdh4+supergroup
%2F123.txt file part-0 0 12 1378866591533+420+cdh4+supergroup
%2F2013%2F09%2F10 dir 1378884856608+493+cdh4+supergroup 0 0 1.txt
%2F2013%2F09%2F11 dir 1378884867194+493+cdh4+supergroup 0 0 2.txt
%2F2013%2F09 dir 1378884821792+493+cdh4+supergroup 0 0 10 11
%2F2013%2F09%2F11%2F2.txt file part-0 24 12 1378883185898+420+cdh4+supergroup
%2F3.txt file part-0 36 12 1378883191541+420+cdh4+supergroup

      可以看到里面存储了所有打包目录及文件的层次结构,数据文件信息及内容偏移等:
      /123.txt
      /2013/1.txt
      /2013/2.txt
      /3.txt
      part-0:

hdfs://aaaa
hdfs://aaaa
hdfs://aaaa
hdfs://aaaa

      数据文件中记录了打包目录下所有4个文件的内容。
      【*】根据元数据文件及数据文件应该可以恢复出原目录结构。
页: [1]
查看完整版本: Hadoop Archives *.har文件解析备忘