当前位置: 首页 > news >正文

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

#!/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)

相关文章:

  • STM32系统架构介绍
  • 使用 LangChain 对接硅基流动(SiliconFlow)API:构建一个智能对话系统
  • SpringBoot分布式应用程序和数据库在物理位置分配上、路由上和数量上的最佳实践是什么?
  • 一文速览DeepSeek-R1的本地部署——可联网、可实现本地知识库问答:包括671B满血版和各个蒸馏版的部署
  • Python Pandas(11):Pandas 数据可视化
  • shell脚本自动安装MySQL8
  • 使用Redis实现分布式锁,基于原本单体系统进行业务改造
  • python-leetcode 31.K个一组翻转链表
  • Selenium常用自动化函数
  • Jenkins 通过 Execute Shell 执行 shell 脚本 七
  • 读取本地excel并生成map,key为第一列,value为第二列
  • leetcode:171. Excel 表列序号(python3解法)
  • 深入解析 STM32 GPIO:结构、配置与应用实践
  • DeepSeek 助力 Vue 开发:打造丝滑的通知栏(Notification Bar)
  • 网络模型分层与对比
  • PostgreSQL 备库的延迟问题
  • 哪吒闹海!SCI算法+分解组合+四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测
  • 6.appender
  • MySQL、MariaDB 和 TDSQL 的区别
  • 10 FastAPI 的自动文档
  • 联合国:欢迎俄乌伊斯坦布尔会谈,希望实现全面停火
  • 马上评|重病老人取款身亡,如何避免类似悲剧?
  • 中国情怀:时代记录与家国镜相|澎湃·镜相第三届非虚构写作大赛暨七猫第六届百万奖金现实题材征文大赛征稿启事
  • 中国情怀:时代记录与家国镜相|澎湃·镜相第三届非虚构写作大赛征稿启事
  • 多地举办演唱会等吸引游客刺激消费,经济日报:引导粉丝经济理性健康发展
  • 国税总局上海市税务局通报:收到王某对刘某某及相关企业涉税问题举报,正依法依规办理