文件归档工具archive
1 原因 :
- hdfs本身就不适合小文的存储
- 小文件无论多小,hdfs的元数据也要记住这个文件,而元数据是存在内存中的…
- 如果集群中的小文件过多 ,就会造成内存被撑爆. 这就是小文件吃内存问题.
2 解决
- 将一批小文件归档为一个档案文件 .List item
- 底层是通过 MapReduce程序将小文件进行合并. 启动yarn集群执行mr程序.
- 一般以周,月为单位进行归档 .
3 具体使用
1 创建档案
hadoop archive -archibeName 归档包名.har -p 要被归档的目录路径 归档包存储的目录
hadoop archive -archiveName my.har -p /test02 /outputDir
hadoop fs -ls 归档包路径 这只是查看归档包的信息,查看不到文件信息
hadoop fs -ls har://hdfs-node1:8020/ 归档包路径
hadoop fs -ls har://hdfs-node1:8020/my.har
2 查看归档包中的某一个具体文件的信息
hadoop fs -ls har://hdfs-node1:8020/ 归档包路径 文件名
hadoop fs -ls har://hdfs-node1:8020/my.har/1.txt
如果操作是本地 可以简写 har:///outputDi
hadoop fs -ls har:///my.har/1.txt
提取归档包的归档文件到指定路径
hadoop fs -cp har://hdfs-node1:8020/ 归档包路径/* /目的地目录