【发布时间】:2018-01-16 20:58:25
【问题描述】:
我正在尝试使用 distcp 和 airbnb reair 实用程序将文件从一个 hadoop 集群同步到另一个集群,但它们都没有按预期工作。
如果源和目标的文件大小相同,即使文件内容已更改(校验和也不同),除非不使用覆盖选项,否则它们都无法更新它。
我需要保持 30TB 左右的同步数据,所以每次加载完整的数据集是不可行的。
如果文件大小相同(源中的计数已更改)并且校验和不同,任何人都可以建议我如何使两个数据集同步。
【问题讨论】:
-
您是在两个不同的 HDFS 集群之间同步,还是在 HDFS 和 GCS 之类的集群之间同步?
-
@DennisHuo 在 HDFS 和 GCS 之间同步
-
您能否解释一下为什么 DistCp 没有按预期工作?您在使用--update flag 吗?如“指定-update时,除非文件大小也不同(即除非重新创建文件),否则不会同步状态更新”
-
@GuillemXercavins 设置更新标志时,即使大小相同,也会再次复制源中的所有文件。每次我将运行 distcp 每次都会传输 30TB。
-
做了一些快速测试,结果相同。重读 DistCp documentation 似乎要同步,您应该使用 -diff 选项并将快照与 -update 结合使用。你试过了吗?
标签: hadoop hive hadoop2 hortonworks-data-platform google-cloud-dataproc