有什么方法可以运行 DistCp,但可以选择在文件名冲突时重命名?也许用一个例子来解释是最容易的。
假设我正在复制到 hdfs:///foo 到 hdfs:///bar,而 foo 包含这些文件:
hdfs:///foo/a
hdfs:///foo/b
hdfs:///foo/c
和 bar 包含这些:
hdfs:///bar/a
hdfs:///bar/b
然后在复制之后,我希望 bar 包含以下内容:
hdfs:///bar/a
hdfs:///bar/a-copy1
hdfs:///bar/b
hdfs:///bar/b-copy1
hdfs:///bar/c
如果没有这样的选择,那么最可靠/最有效的方法是什么?我自己开发的 distcp 版本当然可以完成,但这似乎工作量很大,而且很容易出错。基本上,我根本不关心文件名,只关心它们的目录,我想定期将大量数据复制到“合并”目录中。