HIVE数据迁移3

版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/77c1ca19d3cb

集群A上HIVE表数据需同步到集群B上,由于每张表做了日分区,传输部分日期数据,通过手工方式一一筛选比较复杂,编写脚本实现。

#!/bin/sh

hdfs_src="hdfs://源集群NN地址:8020"

hdfs_dst="hdfs://目标集群NN地址:8020"

hadoop_cmd="hadoop distcp -update -bandwidth 50"

declare -A dict    //声明字典

dict['talbe1']="/hdfs上table1对应的上层目录/table1"

dict['talbe2']="/hdfs上table2对应的上层目录/table2"

start_day="20190303"

end_day="20190509"

for table in $(echo ${!dict[*]})      //遍历字典所有key值,即表名

do

  hdfs_path=$(echo ${dict[$table]})  //赋值每张表对应的hdfs路径

  start_date=`date -d "$start_day" +%Y%m%d`  //获取日期变量

  end_date=`date -d "$end_day" +%Y%m%d`

      while [[ $start_date < $end_date ]]

      do

      hadoop distcp -update -bandwith 15 $hdfs_src$hdfs_path/dt=$start_date $hdfs_dst$hdfs_path/dt=$start_date

      start_date=`date -d "+1 day $start_date" +%Y%m%d`

      done

done

之后在集群B上建库建表,执行msck repair table 表名。这步后面再更新到脚本中。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容