跨集群数据同步-爱代码爱编程
背景:
我司有多个Hadoop集群,分别用于生产、测试、开发等场景。在实际操作中,经常遇到需要将生产环境的数据同步到测试或开发环境的Hadoop集群上,以便更好的测试、开发。因此会涉及到跨集群的数据同步。由于我司没有使用Datax、sqoop等同步工具,因此需要自己开发。
分析:
我们的需求主要是将生产环境的hive表数据同步到其他集群中,经过调研,确定使用hadoop shell命令中的distcp,具体说明可以参照: Hadoop DistCp.
实现:
hadoop distcp hdfs://nn1_prd:8020/user/hive/warehouse/ods.db/table_name/prart* hdfs://nn2_stg:8020/user/hive/warehouse/ods.db/table_name/
说明:
(1)hdfs://nn1_prd:8020/user/hive/warehouse/ods.db/table_name/prart* 源集群数据表文件
注意:需要指定待同步的具体文件名,如果只指定到路径,没有文件,将把源文件夹也同步到目标路径。
(2) hdfs://nn2_stg:8020/user/hive/warehouse/ods.db/table_name/ 目标集群路径