【Hadoop-Distcp】通过Distcp的方式进行两个HDFS集群间的数据迁移

【Hadoop-Distcp】通过Distcp的方式进行两个HDFS集群间的数据迁移

  • 1)Distcp 工具简介及参数说明
  • 2)Shell 脚本

1)Distcp 工具简介及参数说明

【Hadoop-Distcp】工具简介及参数说明

2)Shell 脚本

  • 应用场景:

    两个实时集群交互数据,A 集群B 集群补充数据。

  • 主要说明:

    1、将表名统一放到服务器文本 hotDataTable 中,按照需要将需要补充数据的表放入文本即可。

    2、-i 参数:跳过异常,避免文件迁移过程中出现文件不存在等异常情况出现,异常会中断迁移任务。

    3、-skipcrccheck 参数:跳过 crc 算法校验,会加快数据传输速度。

    4、-update 与 -delete 参数:按照文件进行校验,B 集群 有的会保存,B 集群 没有的会按照 A 集群 进行迁移,B 集群 多出的会进行删除。(通常update与delete一起使用)

  • 其余说明请参考:

    【Hadoop-Distcp】工具简介及参数说明

kinit -kt /opt/conf/test.keytab [email protected]
for tablename in `cat /opt/corns/hotDataTable`
do
hadoop distcp -D ipc.client.fallback-to-simple-auth-allowed=true \
-D mapred.task.timeout=60000000 \
-D mapreduce.job.name=${tablename}-${sample_date} \
-Dmapred.job.queue.name=queuename \
-i \
-skipcrccheck \
-update \
-delete \
-direct \
-bandwidth=60 \
-m=50 \
-numListstatusThreads=40 \
webhdfs://10.1.1.1:4008/user/test/hive/dw_test.db/${tablename}/sample_date=${sample_date}/ \
hdfs://nameserver/warehouse/tablespace/external/hive/test.db/${tablename}/sample_date=${sample_date}
done

你可能感兴趣的:(Hadoop,hadoop,hdfs)