1.从源头上解决,在上传到HDFS之前,就将多个小文件归档
使用tar
命令 带上参数-zcvf
示例:
tar -zcvf xxx.tar.gz 小文件列表
2.如果小文件已经上传到HDFS了,可以使用在线归档
使用hadoop archive
命令
示例:
hadoop archive -archiveName xxx.har -p /文件目录 小文件列表 /存放目录
在线归档的功能实际是一个MR程序,这个程序将HDFS已经存在的多个小文件归档为一个归档文件!
3.在本地查看har包里的归档文件,一定要带上har://
协议,只有ls
不列出归档文件!
hadoop fs -ls har:///xxx.har
4.下载归档文件
hadoop fs -get har:///xxx.har/xxx文件