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目录结构如下:
Name Type Size
_SUCCESS file 0 B
_index file 599 B
_masterindex file 23 B
part-0 file 48 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个文件的内容。

        【*】根据元数据文件及数据文件应该可以恢复出原目录结构。

猜你喜欢

转载自xmaster.iteye.com/blog/1940230