是否可以在 2 个 Hdfs 目录(单独的集群)之间使用 distcp 来 distcp 文件(逗号分隔)?

Is it possible to distcp files (comma separated) using distcp between 2 Hdfs directories (separate clusters)?

我只需要 distcp x 个文件。

找不到解决方法。

  1. 一个想法是将它复制到一个临时目录,然后 distcp 该目录。完成后,我可以删除该临时目录。

  2. 单独的 distcp 命令(针对每个文件)。这可能会很痛苦。

不确定是否允许逗号分隔。

有什么想法吗?

提前致谢。

您可以将所有文件作为源传递给 DistCp 命令

hadoop distcp hdfs://src_nn/var/log/spark/appHistory/<appId_1>/ \
              hdfs://src_nn/var/log/spark/appHistory/<appId_2>/ \
              ....
              hdfs://src_nn/var/log/spark/appHistory/<appId_n>/ \
              hdfs://dest_nn/target/

或者,创建一个包含源列表的文件并将其作为带有 -f 选项的源传递给命令

hadoop distcp -f hdfs://src_nn/list_of_files hdfs://dest_nn/target/