hadoop datacopy中的getmerge命令

时间:2015-02-25 09:22:02

标签: hadoop

我的目标是读取目录中以“trans”开头的所有文件并将它们转换为单个文件并将该单个文件加载到HDFS位置

我的源目录是/ user / cloudera / inputfiles /

假设在上面的目录中,有很多文件,但我需要所有以“trans”开头的文件

我的目标目录是/ user / cloudera / transfiles /

所以我在下面尝试了这个命令

hadoop dfs - getmerge /user/cloudera/inputfiles/trans* /user/cloudera/transfiles/records.txt

但上述命令无效。

如果我尝试以下命令,那么它可以正常工作

hadoop dfs - getmerge /user/cloudera/inputfiles   /user/cloudera/transfiles/records.txt

有关如何从hdfs位置合并某些文件并将合并的单个文件存储在另一个hdfs位置的任何建议

1 个答案:

答案 0 :(得分:4)

以下是getmerge命令的用法:

Usage: hdfs dfs -getmerge <src> <localdst> [addnl]

Takes a source directory and a destination file as input and 
concatenates files in src into the destination local file. 
Optionally addnl can be set to enable adding a newline character at the
end of each file.

它希望目录作为第一个参数。

你可以尝试这样的cat命令:

hadoop dfs -cat /user/cloudera/inputfiles/trans* > /<local_fs_dir>/records.txt
hadoop dfs -copyFromLocal /<local_fs_dir>/records.txt /user/cloudera/transfiles/records.txt