Hive迁移,小表(10G以下的),分区快速修复批量脚本

hive迁移要迁移元数据(mysql),要迁移实际数据hdfs,迁移完后如果有分区,通常是不能访问的。

这里就要修复分区了,如果是大表,几十T这种,迁移可能花了24小时,那么你修复分区也可能花这么久,这种表就得手动分区比较快。参考这个几分钟。hive迁移后修复分区慢,怎么办?-CSDN博客

大表就只有那么多张,其他大部分都是小表,比如我这个小表有2000张。

主要用的是MSCK REPAIR TABLE table_name

脚本如下

repair_table.sh

bash 复制代码
#!/bin/bash

# 设置beeline的连接信息
BEELINE_CMD="beeline -u jdbc:hive2://your_hive_server:10000 -n your_username -p your_password"
#kerbers方式
#BEELINE_CMD="beeline -u jdbc:hive2://xxx:7001/xxx;principal=hadoop/xxx@xxxx"

# 读取包含表名的txt文件
while IFS= read -r table_name
do
    # 执行MSCK REPAIR TABLE命令
    echo "Repairing partitions for table: $table_name"
    $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
done < "$1"

建议第一次,先在下面的table.txt,提供几张小表,测试下,然后没问题,在一次性丢几千张表进去。

用法,准备一个含所有表名的txt

table.txt

里面的内容是

table_name123

ods_a

ods_a12

dwd_b

用法

sh repair_table.sh table.txt

成功,之后自己beeline去hive里面查下就行了

相关推荐
亲爱的非洲野猪7 小时前
SpringBoot启动流程深度剖析:从@SpringBootApplication到Servlet容器就绪
hive·spring boot·servlet
星火开发设计10 小时前
深入浅出HDFS:分布式文件系统核心原理与实践解析
大数据·数据库·hadoop·学习·hdfs·分布式数据库·知识
`林中水滴`12 小时前
Hive系列:Hive 整合 HBase
hive·hbase
Hello.Reader12 小时前
Hadoop Formats 在 Flink 里复用 Hadoop InputFormat(flink-hadoop-compatibility)
大数据·hadoop·flink
s***872713 小时前
TCP/IP协议栈深度解析技术文章大纲
hive·spring boot
橙露13 小时前
大数据分析入门:Hadoop 生态系统与 Python 结合的分布式数据处理实践
hadoop·分布式·数据分析
CoookeCola13 小时前
从人脸检测到音频偏移:基于SyncNet的音视频偏移计算与人脸轨迹追踪技术解析
数据仓库·人工智能·目标检测·计算机视觉·数据挖掘
zgl_200537791 天前
ZGLanguage 解析SQL数据血缘 之 Python + Echarts 显示SQL结构图
大数据·数据库·数据仓库·hadoop·sql·代码规范·源代码管理
飞Link1 天前
【Sqoop】Sqoop 使用教程:从原理到实战的完整指南
数据库·hadoop·sqoop
SelectDB技术团队1 天前
驾驭 CPU 与编译器:Apache Doris 实现极致性能的底层逻辑
数据库·数据仓库·人工智能·sql·apache