2013-10-17 186 views
1

我在集群A中有一个目录:/ a/b/c。该目录包含目录“一”,“二”,“三”,...,“九十”。在集群B中,我有目录/ a/b/c。该目录包含目录“one”。我想将群集A中的“ninety”目录复制到群集B,以便最后群集B将具有目录/ a/b/c/one .../a/b/c/ninety。 B/a/b/c/one群集中的文件不在群集A/a/b/c/one中。那些复制后应该仍然在那里。Hadoop Distcp将目录内的目录复制到同名目录

我曾尝试以下:

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. 

什么是正确的命令?

回答

3

明白了。

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

如果你已经有一个“C”为每所提出的方案,也许你想要的是在/ A/B/C添加内容到现有/ A/B/C目的地集群中。 为此,您可以使用-update标志。

distcp -update /a/b/c hdfs:B:8020/a/b/c 
相关问题