Hadoop 归档

归档

命令格式:

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

以归档 /test 目录下所有文件到 /user/lizhen 目录下为例:

hadoop archive -archiveName test.har -p /test -r 3 /user/lizhen  

-p 参数,指定了归档文件的父路径

-r 参数,指定了分片

har

打包之后的 .har 是 HDFS 中的目录,结构如下:

- _index
- _masterindex
- part-*

其中,_index_masterindex 存储了归档目录的元数据,part-* 存储了数据

可以使用 HDFS 的 Shell 命令查看归档目录的内容,URL 使用 har://

hdfs dfs -ls har:///user/lizhen/test.har  

归档内容不可以修改,所以使用 HDFS Shell 命令创建、修改和删除归档内容会报错

提取文件

可以使用以下 Hadoop Shell 命令提取文件,区别是,后者比前者有更高的并行度

hdfs dfs -cp har:///user/lizhen/test.har/test hdfs:/user/lizhen  
hadoop distcp har:///user/lizhen/test.har/test hdfs:/user/lizhen  

参考:Hadoop Archives Guide