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目录结构如下:
[table]
|Name|Type|Size|
|_SUCCESS|file|0 B|
|_index|file|599 B|
|_masterindex|file|23 B|
|part-0|file|48 B|
[/table]
[b]【说明:】[/b]
1. *.har在HDFS上是一个目录,不是一个文件。
2. _index和_masterindx为元数据信息。
3. part-*为真实数据集。

看下_index文件及part-0中都存了些什么:
[b]_index:[/b]

%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

[b]part-0:[/b]

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

数据文件中记录了打包目录下所有4个文件的内容。

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

你可能感兴趣的:(hadoop)