hive 优化(一)超大数据集动态分区优化

1 篇文章 0 订阅
1 篇文章 0 订阅

    需求:     一张300+字段,1亿数据量的表,去重并重新按照天分区 ,

   (1)方案:直接全表去重并按照字段 动态分区 

            结果 : 失败,由于数据量和字段过多,全表去重(row_number over())和 动态分区 都消耗过多资源,根本无法运行成功

   (2)方案: 1.全表去重到中间表

                      2.中间表动态分区至原表

            结果:失败, 中间表运行成功使用15分钟,但是中间表动态分区至原表时,整个集群文件操作符飙升,导致集群hbase 节点也不停 掉,程序也报broken_pip 的错误,搞的大家很郁闷。冷静分析如下:原表全表去重之后没做任何处理,导致生成了1099个reduce文件(集群单job 最大redece 数量),而每个文件大约含有100个分区日期,这就导致了每个文件要生成100个小文件。一共要生成10万个文件,导致整个集群文件操作符沾满,进而影响集群和hbase

    (3)最终方案。

                       1.全表去重到中间表 时 distribute by   分区字段,这样就可以 将相同分区的数据放到同一个文件中 用时 15 分钟

                       2.新处理过的中间表 动态分区至原表, 用时3分钟,问题完美解决

           

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值