0%

hadoop之har

官方文档:https://hadoop.apache.org/docs/current/hadoop-archives/HadoopArchives.html

概述

hadoop Archive是一个高效地将小文件放入HDFS块中的文件存档文件格式,它能够将多个小文件打包成一个后缀为.har文件,这样减少namenode内存使用的同时,仍然允许对文件进行透明的访问。

Hadoop存档是特殊格式的存档。 Hadoop归档文件映射到文件系统目录。 Hadoop归档文件始终具有* .har扩展名。 Hadoop存档目录包含元数据(以_index和_masterindex的形式)和数据(part- *)文件。 _index文件包含作为归档文件一部分的文件名以及这些文件内的位置。

如何创建归档?

用法:

1
hadoop archive -archiveName name -p <parent> [-r <replication factor>] <src>* <dest>

-archiveName是您要创建的档案的名称,例如foo.har。名称应带有* .har扩展名。

parent参数用于指定文件应归档到的相对路径。例如:

1
-p /foo/bar a/b/c e/f/g

/foo/bar是父路径,而a/b/c,e/f/g是父路径的相对路径。

-r表示所需的复制因子;如果未指定此可选参数,则将使用3的复制因子

如果您只想归档一个目录/foo/bar,则可以使用以下例子

1
hadoop archive -archiveName zoo.har -p /foo/bar -r 3 /outputdir

如果您指定在加密区域中的源文件,它们将被解密并写入存档。 如果har文件不在加密区域中,则它们将以明文(解密)形式存储。 如果har文件位于加密区域中,它们将以加密形式存储。