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)

相关推荐
IvanCodes10 分钟前
七、Hadoop 历史追踪、数据安全阀与 MapReduce初体验
大数据·hadoop·hdfs·mapreduce·yarn
爱编程的王小美15 分钟前
本地MySQL连接hive
数据库·hive·mysql
麻芝汤圆5 小时前
深入探索 Spark RDD 行动算子:功能解析与实战应用
大数据·hadoop·分布式·spark·mapreduce
widder_8 小时前
大数据处理利器:Hadoop 入门指南
大数据·hadoop·分布式
chat2tomorrow16 小时前
如何使用 QuickAPI 推动医院数据共享 —— 基于数据仓库场景的实践
大数据·数据仓库·人工智能·医院·sql2api
火龙谷21 小时前
【hadoop】案例:Sqoop迁移仓库数据
hive·hadoop·sqoop
my_realmy1 天前
基于 Spark 和 Hadoop 的空气质量数据分析与预测系统
hadoop·数据分析·spark
Agatha方艺璇1 天前
Hadoop MapReduce 图文代码讲解
大数据·hadoop·mapreduce
暮 夏1 天前
在登录页面上添加验证码
数据仓库·hive·hadoop