Hadoop DistCp通过重命名处理相同的文件名

Joe*_*e K 5 hadoop mapreduce distcp

有没有办法运行DistCp,但有一个选项可以重命名文件名冲突?也许最简单的解释一个例子.

假设我正在复制到hdfs:/// foo到hdfs:/// bar,而foo包含这些文件:

hdfs:///foo/a
hdfs:///foo/b
hdfs:///foo/c
Run Code Online (Sandbox Code Playgroud)

和栏包含以下内容:

hdfs:///bar/a
hdfs:///bar/b
Run Code Online (Sandbox Code Playgroud)

然后复制之后,我想要条形图包含:

hdfs:///bar/a
hdfs:///bar/a-copy1
hdfs:///bar/b
hdfs:///bar/b-copy1
hdfs:///bar/c
Run Code Online (Sandbox Code Playgroud)

如果没有这样的选择,那么最可靠/最有效的方法是什么?我自己的本土版本的distcp当然可以完成它,但这似乎可能是很多工作,而且很容易出错.基本上,我根本不关心文件名,只关心它们的目录,我想定期将大量数据复制到"合并"目录中.

小智 1

Distcp 没有该选项。如果您使用 Java API,则可以通过检查目标路径是否存在并在路径已存在时更改路径来轻松处理。FileSystem您可以使用方法通过对象检查这一点exists(Path p)