Hadoop Distcp将目录内的内容复制到同名目录

时间:2013-10-17 17:33:24

标签: hadoop hdfs

我在群集A中有一个目录:/ a / b / c。该目录包含目录“一”,“二”,“三”,......,“九十”。在群集B中,我有目录/ a / b / c。该目录包含目录“one”。我想将目录“one”到“ninety”从集群A复制到集群B,这样最终集群B将具有目录/ a / b / c / one ... / a / b / c / ninety。群集B / a / b / c / 1中的文件不在群集A / a / b / c / one中。复制后,这些应该仍然存在。

我尝试了以下内容:

1)

distcp /a/b/c/ hdfs:B:8020/a/b/c

但这使得目录c在前一个c。

2)

distcp /a/b/c/* hdfs:B:8020/a/b/c

但我明白了:

zsh: no matches found: /a/b/c/*

3)

distcp /a/b/c/\* hdfs:B:8020/a/b/c

但我明白了:

Copy failed: org.apache.hadoop.mapred.InvalidInputException: Input source /a/b/c/* does not exist.

什么是正确的命令?

2 个答案:

答案 0 :(得分:4)

知道了。

distcp /a/b/c hdfs:B:8020/a/b/

答案 1 :(得分:0)

如果您已按照建议的方案使用“c”,则可能需要将/ a / b / c下的内容添加到目标群集中的现有/ a / b / c。 为此,您可以使用-update标志。

distcp -update /a/b/c hdfs:B:8020/a/b/c