hadoop distcp将目录中的内容复制到同名目录中

jexiocij  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(459)

我在集群a中有一个目录:/a/b/c。此目录包含目录“一”、“二”、“三”、“九十”。在集群b中,我有目录/a/b/c。此目录包含目录“one”。我想把目录“one”到“90th”从集群a复制到集群b,这样,集群b最后会有目录/a/b/c/one/a/b/c/90。群集b/a/b/c/one中存在不在群集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/*
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.

正确的命令是什么?

hujrc8aj

hujrc8aj1#

如果您已经按照所建议的场景拥有了“c”,那么您可能需要将/a/b/c下的内容添加到目标集群中现有的/a/b/c中。为此,可以使用-update标志。

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

ngynwnxp2#

知道了。

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

相关问题