两个不同的HDFS 集群数据迁移( A集群的数据 -> B 集群) 采用的是 SHELL 脚本
- 按表进行;
- 日期分区进行;
#!/bin/bash > > > > ##################### > > > > #创建人:DZH > > > > #创建日期: 2020-04 > > > > #内容: 数据迁移 > > > > ##################### > > > > ##################################### > > > > [ "$#" -ne 0 ] && FILE=$1 > > > > path=$(cd `dirname $0`; pwd) > > > > ############## 获取执行时间范围 (默认7天) ################### > > > > #if [ "$#" -eq 3 ]; then > > > > # START_DATE=$2 > > > > # END_DATE=$3 > > > > #else > > > > # START_DATE=`date -d"-1 day" +%Y-%m-%d` > > > > # END_DATE=`date -d "-0 day" +%Y-%m-%d` > > > > #fi > > > > # > > > > #echo ${START_DATE} > > > > #echo ${END_DATE} > > > > # 读取账户列表 > > > > cat $FILE|while read dbtablelist > > > > do > > > > db_name=`echo $dbtablelist|awk -F "|" '{print $1}'` > > > > table_name=`echo $dbtablelist|awk -F "|" '{print $2}'` > > > > part_field=`echo $dbtablelist|awk -F "|" '{print $3}'` > > > > start_date=`echo $dbtablelist|awk -F "|" '{print $4}'` > > > > end_date=`echo $dbtablelist|awk -F "|" '{print $5}'` > > > > #if [${start_date} -eq "2999-01-01" ]; then > > > > # start_date=`date -d"-1 day" +%Y-%m-%d` > > > > # end_date=`date -d "-0 day" +%Y-%m-%d` > > > > #fi > > > > #将日期转为的时间戳格式 > > > > startDate=`date -d "${start_date}" +%s` > > > > endDate=`date -d "${end_date}" +%s` > > > > #计算两个时间戳的差值除于每天86400s即为天数差 > > > > stampDiff=`expr $endDate - $startDate` > > > > days=`expr $stampDiff / 86400` > > > > echo "${days} 天数据" > > > **############# for 单个分区表循环迁移 ################**> > > for((i=0;i<=${days};i++)) > > > > do > > > > part_date=`date -d "${start_date} +${i} day" +'%Y-%m-%d'` > > > > echo "${db_name}.${table_name} ${part_date} 迁移开始" > > > > #迁移 网络限制300M 增量形式迁移 > > > > hadoop distcp -bandwidth 300 -m 90 -update > > > > hdfs://10.13.128.4:8020/user/hive/warehouse/${db_name}.db/${table_name}/${part_field}=${ > > > > part_date} > > > > hdfs://172.21.12.223:8020/user/hive/warehouse/${db_name}.db/${table_name}/${part_field}= > > > > ${part_date} > > > > echo "${db_name}.${table_name} ${part_date} 迁移完成" > > > > done > > > > ############# for 单个分区表循环迁移 ################ > > > > ###################################### > > > > done >
本文转载自: https://blog.csdn.net/shijiazhenghu/article/details/137746539
版权归原作者 shijiazhenghu 所有, 如有侵权,请联系我们删除。
版权归原作者 shijiazhenghu 所有, 如有侵权,请联系我们删除。