Hadoop的Archive归档命令
hadoop不适合小文件的存储,小文件本省就占用了很多的metadata,就会造成namenode越来越大。Hadoop Archives的出现视为了缓解大量小文件消耗namenode内存的问题。
采用ARCHIVE 不会减少 文件存储大小,只会压缩NAMENODE 的空间使用
概述
Hadoop存档是特殊格式的存档。Hadoop存档映射到文件系统目录。Hadoop归档文件总是带有* .har扩展名
Hadoop存档目录包含元数据(采用_index和_masterindex形式)
数据部分data(part- *)文件。
_index文件包含归档文件的名称和部分文件中的位置。
如下:原始文件 四个文件
经过hadoop archive之后:
执行的命令是:hadoop archive -archiveName words.har -p /words -r 1 /wordhar
生成的文件在/wordhar/words.har
执行该命令后,原输入文件不会被删除,需要手动删除
hadoop fs -rmr /words
其中part-0是数据文件
在mapreduce中,会忽略以下划线开头的文件,也就是说上图的_SUCCESS,_index,_masterindex是不会处理的
那么这样一来就只会处理数据文件part-0
job设置的输入路径是
运行mapreduce中执行的map数量是1
分片为一个
map数量为一个
还没有评论,来说两句吧...