解压har文件
# 按顺序解压存档(串行)
hdfs dfs -cp har:///outputdir/user.har /outputdir/newdir
# 查看
hdfs dfs -ls /outputdir/newdir
# 要并行解压存档,请使用DistCp,会提交MR任务进行并行解压
hadoop distcp har:///outputdir/user.har /outputdir/newdir2
# 查看
hdfs dfs -ls /outputdir/newdir2
【温馨提示】眼尖的小伙伴,可以已经发现了一个问题,就是cp串行解压,会在解压的目录下保留har文件。
Archive注意事项:
- Hadoop archives是特殊的档案格式, 扩展名是*.har;
- 创建archives本质是运行一个Map/Reduce任务,所以应该在Hadoop集群运行创建档案的命令;
- 创建archive文件要消耗和原文件一样多的硬盘空间;
- archive文件不支持压缩;
- archive文件一旦创建就无法改变,要修改的话,需要创建新的archive文件;
- 当创建archive时,源文件不会被更改或删除;
在本地准备2个小文件:
cat >user1.txt<<EOF
1,tom,male,16
2,jerry,male,10
EOF
cat >user2.txt<<EOF
101,jack,male,19
102,rose,female,18
EOF
合并方式:
hdfs dfs -appendToFile user1.txt user2.txt /test/upload/merged_user.txt
# 查看
hdfs dfs -cat /test/upload/merged_user.txt
web HDFS: http://local-168-182-110:9870/explorer.html#/
3)合并 HDFS 的小文件,下载到本地(getmerge)# 先上传小文件到 HDFS:
hdfs dfs -put user1.txt user2.txt /test/upload
# 下载,同时合并:
hdfs dfs -getmerge /test/upload/user*.txt ./merged_user.txt