赞
踩
hadoop命令:archive
hadoop版本:2.6.0
官方链接:
https://hadoop.apache.org/docs/r2.6.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/HadoopArchives.html#Overview
hadoop不适合小文件的存储,小文件本省就占用了很多的metadata,就会造成namenode越来越大。Hadoop Archives的出现视为了缓解大量小文件消耗namenode内存的问题。
采用ARCHIVE 不会减少 文件存储大小,只会压缩NAMENODE 的空间使用
hadoop存档是特殊格式的存档。该文件总是带有*.har扩展名的目录。目录下包含元数据(_index和_masterindex)和数据部分(part-*)
创建一个归档文件的过程是一个MR作业,创建时使用如下命令
hadoop archive -archiveName name -p <parent> [-r <replication factor>] <src>* <dest>
举个栗子,执行以下命令:hadoop archive -D HADOOP_USER_NAME=ochadoop -archiveName test.har -p /zpy/test hive hvie
表示打包后的文件名为test.har,源文件路径为/zpy/test/hive
下的所有文件,目标路径为/user/ochadoop/hvie
,复制因子为3。
源目录:
生成目录:
归档并不会删除源文件。
har文件采用一套不同于hdfs的路径协议。基本格式为:har://<hdfs路径>
。在未添加协议url时,我们看到的是har文件在HDFS中的底层形式,加上协议头后我们可以看到其目录结构与源目录结构相同。
hadoop fs -ls -R har:///user/ochadoop/hvie/test.har
针对har文件的复制等操作同普通复制操作,唯一区别在于需要在路径头加协议。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。