从Hive生产环境distcp同步HDFS数据到测试环境的脚本

#!/bin/bash

#转小写
typeset -l table_nm
table_nm=$1

#用法事例
usage(){
        echo "USAGE: $0 db名.表名 [分区键=分区值]"
        echo "EXAMPLE: $0 mreport_global.dim_food_area"
        echo "EXAMPLE: $0 mreport_poultry.dmf_sales_order_detail op_month=202011"
        exit 1
}

[ ${#@} -eq 0 ] && usage

#这里用cut -d -s的命令分隔db名和数据库名
hive_db=$(echo $table_nm | cut -d'.' -f1 -s)
hive_tb=$(echo $table_nm | cut -d'.' -f2 -s)

[ -z $hive_db ] || [ -z $hive_tb ] && usage


#如果没有分区,这里为空串
partition_key=$2 

#这里我们将生产的mreport_global同步到测试的mreport_global2环境下(公司特殊需要)
hive_db_uat=$hive_db
if [[ $hive_db = "mreport_global" ]]
then 
    hive_db_uat=${hive_db}2
fi


#数据拷贝和数据修复
hadoop distcp -delete -skipcrccheck -update \
hdfs://dev/user/hive/warehouse/${hive_db}.db/${hive_tb}/${partition_key}\
hdfs://uat/user/hive/warehouse/${hive_db_uat}.db/${hive_tb}/${partition_key}
hive -e "msck repair table ${hive_db_uat}.${hive_tb}"

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值