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)

相关推荐
老徐电商数据笔记5 小时前
技术复盘第四篇:Kimball维度建模在电商场景的实战应用
大数据·数据仓库·技术面试
LF3_5 小时前
Centos7,单机搭建Hadoop3.3.6伪分布式集群
大数据·hadoop·伪分布式
程序员小羊!1 天前
数仓数据基线,在不借助平台下要怎么做?
大数据·数据仓库
Hello.Reader1 天前
Flink SQL 的 LOAD MODULE 深度实战——加载 Hive 模块、理解模块发现与常见坑
hive·sql·flink
老徐电商数据笔记1 天前
技术复盘第二篇:电商数据主题域划分企业级实践
大数据·数据库·数据仓库·零售·教育电商·技术面试
亲亲菱纱1 天前
hive数仓分层
数据仓库
泰克教育官方账号1 天前
泰涨知识 | Hadoop的IO操作——压缩/解压缩
大数据·hadoop·分布式
老徐电商数据笔记1 天前
技术复盘第三篇:百果园新零售核心业务流程主题域划分详解
大数据·数据仓库·零售·技术面试
qq_381454991 天前
大数据时代的分布式基石Hadoop
hadoop
howard20052 天前
Hive实战任务 - 9.1 实现词频统计
hive·词频统计