/dir1 /dir2 /Name1_2015/ file1.lzo file2.lzo file3.lzo /Name2_2015 file1.lzo file2.lzo Name1_2015.lzo
我想合并“dir2”中每个目录的每个文件,并将结果附加到/dir1/DirName.lzo中的文件
例如,对于/ dir1 / dir2 / Name1_2015,我想合并file1.lzo,file2.lzo,file3.lzo并将其附加到/dir1/Name1_2015.lzo
每个文件都是LZO压缩的.
我该怎么做 ?
谢谢
for d in `hdfs dfs -ls /dir2 | grep -oP '(?<=/)[^/]+$'` ; do hdfs dfs -cat /dir2/$d/*.lzo | lzop -d | lzop | hdfs dfs -put - /dir1/$d.lzo ; done
您可以使用map-reduce并行提取所有文件.但是如何并行地从多个文件创建一个归档文件?据我所知,不可能同时从多个进程写入单个HDFS文件.所以我们不可能提出一个单一的节点解决方案.