Hive增量迁移方案与实操PB级

客户一共1PB数据,每天新增10T,有些表只保留3天。

需要客户提供:

a.tbl_size(大小GB) a.last_mtime(最新更新时间) a.tbl_ttl(保留时间) b.last_part_dt(分区值) b.last_part_size(最新分区大小) t_day(表更新规律,t+几)


因为目前离全量迁移,已经过了一个月了

1、先update全部的表(去掉30天以内不保留的)

删除30天内的,90T,重迁

2、其他表删除当前最新分区(不改历史,只改最近的,所以我删除最近的)

,直接迁移update

----检测当前最新分区脚本输出,删除最新分区,update迁移整张表

增量hdfs数据追平-CSDN博客

3、定时update-delete表,T+2分区数据。(客户自己跑T+1)

qianyi_delete_update.sh

bash 复制代码
#!/bin/bash

#1.读取文件

su - hadoop
#改成自己互信的票据
`kinit -kt /var/krb5kdc/emr.keytab hadoop/xx.xx.xx.107@TBDS-09XXXXXE`
#获取当天减2,T+2的时间
dt_jian_2=$(date -d "-2 days" +%Y%m%d)
echo $dt_jian_2

BEELINE_CMD="beeline -u 'jdbc:hive2://xx.xx.xx.104:7001/cfc;principal=hadoop/xx.xx.xx.104@TBDS-09XXXXXE'"

echo "时间$dt_jian_2-------------------------" >> /home/hadoop/qianyi_zengliang/rs.txt
while IFS= read -r table_name
do
    source_path=hdfs://xx.xx.xx.7:8020/apps/hive/warehouse/bigdata.db/$table_name
    target_path=hdfs://xx.xx.xx.104:4007/apps/hive/warehouse/bigdata.db/$table_name
    echo "删除表: $table_name ,开始hdfs://xx.xx.xx.104:4007/apps/hive/warehouse/bigdata.db/$table_name/dt=$dt_jian_2"
    hdfs dfs -rm -r hdfs://xx.xx.xx.104:4007/apps/hive/warehouse/bigdata.db/$table_name/dt=$dt_jian_2
    #2.distcp,update,delete迁移
    #手动指定分区
    hadoop distcp -skipcrccheck -i -strategy dynamic -bandwidth 30 -m 20  $source_path/dt=$dt_jian_2 $target_path/dt=$dt_jian_2
    #修复分区
    $BEELINE_CMD -e "MSCK REPAIR TABLE $table_name;"
    if [ $? -eq 0 ]; then
        echo "Successfully repaired partitions for table: $table_name"
    else
        echo "Failed to repair partitions for table: $table_name"
    fi    
    echo "完成$source_path到$target_path的t-2的更新,$dt_jian_2" >> /home/hadoop/qianyi_zengliang/rs.txt
done < "$1"

b_input_table.txt

ods_xxx

dwd_xxx

crontab -e

46 12 * * * source /etc/profile && nohup sh /home/hadoop/qianyi_zengliang/qianyi_delete_update.sh /home/hadoop/qianyi_zengliang/b_input_table.txt > /home/hadoop/qianyi_z

engliang/b.log 2>&1 &

4、最后建表补数1241张

补数没有分区的,以及分区不是dt的(1T)

相关推荐
m0_748233641 天前
【分布式】Hadoop完全分布式的搭建(零基础)
大数据·hadoop·分布式
薇晶晶1 天前
如何安装Hadoop
大数据·hadoop·分布式
人类群星闪耀时1 天前
数据湖与数据仓库:初学者的指南
大数据·数据仓库·spark
一张假钞1 天前
MapReduce 读取 Hive ORC ArrayIndexOutOfBoundsException: 1024 异常解决
大数据·hive·mapreduce
python资深爱好者1 天前
Hive中的分区和桶的概念及其作用
数据仓库·hive·hadoop
Beekeeper&&P...2 天前
Spring Security,servlet filter,和白名单之间的关系
hive·spring·servlet
我要用代码向我喜欢的女孩表白2 天前
hive(hdfs)补数脚本
数据仓库·hive·hadoop
宝哥大数据2 天前
Hive--map join
hive
风子~2 天前
hive—常用的函数整理
数据仓库·hive·hadoop
moton20172 天前
一.数据治理理论架构
大数据·数据仓库·数据治理·etl·数据湖·元数据管理·主数据管理