我在群集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.
什么是正确的命令?
答案 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