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

hive迁移后修复分区慢,怎么办?

我有1个30TB的分区表,客户给的带宽只有600MB,按照150%的耗时来算,大概要迁移17小时。
使用hive自带的修复分区命令(一般修复分区比迁移时间长一点),可能要花24小时。于是打算用前面黄大佬的牛B方案。

msck repair table分区慢的原因:

与当前分区目录下的文件大小无关,只与分区目录【数量】有关,分区目录越多,二级(或子级)目录越多,分区就越慢


Hive增量迁移:创建表结构+数据迁移(distcp)+修复分区

1)创建表结构 读取cdh的建表语句,在tbds上创建表

2)数据迁移 同distcp

3)分区数据 msck repair table XX(alter table XX recover partitions) 修复太慢;改用查询元数据库,对比两边分区数据差异项,然后拼接成add partition语句,来执行。

例如之前修复一个1000个分区的表,需要8h(质疑?--我后面用了10T的表,测试了下200个一级分区也才3分钟修复)

hive:

一级分区:alter table XX add partition (etl_date=20240101);

alter table XX add partition (etl_date=20240101);

二级分区:alter table XX add partition (etl_yn=2024,etl_mn=01);

alter table XX add partition (etl_yn=2024,etl_mn=01);

改用add partition后,1000个分区的表,10min内

上面是他的方案,我实战测试下


实战测试

1、先查询指定库的分区有几个(源端查)

beeline -u 'xxxx'进入hive

show create table 表名

查看他的分区字段

这里我们能看到他就1个分区,而且字段是dt,接下来我们来查下dt有多少个

select distinct(dt) from xxx 
查询这个表30T的表,大概花了110秒

我们能看到他是以日进行分区的。

并且有542行。我们先把这个复制出来,然后拼凑成sql。

alter table XX add partition (dt=20240101);

2、然后打开notepad++,用ctrl + f 正则处理一下

大概就处理成这样

测试:

在目标端,因为我们没有修复分区,所以这里迁移完数据和元数据后,他们是查不出来数据的。
beeline -u 'xxx'

select * from xxx limit 1;

没有数据

3、接下来我们将500多条语句丢进Hive执行一下(手动分区修复)。

然后我们在执行一下查询

select * from xxx limit 1;

有数据了,手动修复成功,比hive MSCK REPAIR TABLE table_name分区命令快n倍。


http://www.mrgr.cn/news/83695.html

相关文章:

  • python学习整理
  • HarmonyOS 鸿蒙 ArkTs(5.0.1 13)实现Scroll下拉到顶刷新/上拉触底加载,Scroll滚动到顶部
  • Therabody 与Garmin联手,共同推进运动恢复与健康科技新突破
  • 【Ubuntu与Linux操作系统:七、系统高级管理】
  • 完全自定义Qt翻译功能,不使用Qt Linguist的.ts 和 .qm类型翻译
  • 解读若依框架中的`@Excel` 和 `@Excels` 注解
  • 【Docker】Docker部署多种容器
  • Python----Python高级(函数基础,形参和实参,参数传递,全局变量和局部变量,匿名函数,递归函数,eval()函数,LEGB规则)
  • ImportError: attempted relative import with no known parent package 报错的解决!
  • 自动连接校园网wifi脚本实践(自动网页认证)
  • MATLAB学习笔记目录
  • docker的学习
  • HIVE技术
  • JAVA安全编码规范
  • 关于使用FastGPT 摸索的QA
  • python学opencv|读取图像(三十三)阈值处理-灰度图像
  • C/C++程序员为什么要了解汇编?了解汇编有哪些好处?如何学习汇编?
  • uniapp小程序分包路由跳转+二级页面详情跳转保留当前页方法教程
  • Http 响应状态码 前后端联调
  • ClickHouse大数据准实时更新
  • 开发人员学习书籍推荐(.NET、Python方向)
  • linux: 文本编辑器vim
  • 【数据结构】
  • Pandas常用数据类型
  • traceroute原理探究
  • 在线实用工具 json格式化,base64转码,正则表达式测试工具,在线去水印,在线图片压缩,在线图片转为Excel,在线图片拾取颜色