博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一次impala查询详细错误记录和分析
阅读量:5222 次
发布时间:2019-06-14

本文共 2476 字,大约阅读时间需要 8 分钟。

前言

impala集群出错的一次记录和解决方法以及解决思路。

错误记录

错误信息

Memory limit exceeded Cannot perform hash aggregation. Partitioned input data too many times. This could mean there is too much skew in the data or the memory limit is set too low.

Query信息

就是个这么长的Query语句,Query需要join十多张的表,各种的字段。这只是很多sql中的其中一个。

create TABLE test.cp_ag_info ASSELECT a1.id cid, hr_num, position_num, available_po_num, rs_num, auto_filter_num, read_num, see_num, manual_refuse_num, it_num, auto_refuse_num, forward_num, get_rs_po_num, get_read_rs_po_num, get_see_rs_po_num, get_it_rs_po_numFROM mysql.cp a1LEFT JOIN (SELECT cid, COUNT(DISTINCT uid) hr_numFROM (SELECT id uid, testid cidFROM mysql.dante_user......UNIONSELECT a1.user_id uid, a2.dante_cp_id cidFROM mds.t_cp_user a1LEFT JOIN mds.t_cp a2ON a1.cp_id=a2.idWHERE a1.is_del='false' AND a2.is_del='false') fGROUP BY cid) a6ON CAST(a1.id AS STRING)= a6.cidLEFT JOIN (SELECT testid cid, COUNT(1) position_num, COUNT(CASE WHEN isenable!=0 AND isexpired!=1 ......COUNT(CASE WHEN a1.DELIVER_AUTO_FILTER=1 THEN a1.orderid END) auto_filter_num,COUNT(CASE WHEN a1.READ_rs=1 THEN a1.orderid END) read_num,COUNT(CASE WHEN a1.READ_CONTACT=1 THEN a1.orderid END) see_num,COUNT(CASE WHEN a1.MANUAL_REFUSE=1 THEN a1.orderid END) manual_refuse_num,COUNT(CASE WHEN a1.ONLINE_it=1 OR a1.OFFLINE_it=1 THEN a1.orderid END) it_num,COUNT(CASE WHEN a1.AUTO_REFUSE=1 THEN orderid END) auto_refuse_num,COUNT(CASE WHEN a1.AUTO_FORWARD=1 OR a1.MANUAL_FORWARD=1 THEN orderid END) forward_numFROM test.ur a1GROUP BY a1.testid) a8ON a1.id=a8.cidLEFT JOIN (SELECT a1.testid cid,......a1.READ_rs=1 THEN a1.positionid END) get_read_rs_po_numFROM test.ur a1GROUP BY testid) a10ON a1.id=a10.cidLEFT JOIN (SELECT a1.testid cid,COUNT(DISTINCT CASE WHEN a1.READ_CONTACT=1 THEN a1.positionid END) get_see_rs_po_numFROM test.ur a1GROUP BY testid) a11ON a1.id=a11.cidLEFT JOIN (SELECT a1.testid cid,COUNT(DISTINCT CASE WHEN a1.ONLINE_it=1 OR a1.OFFLINE_it=1 THEN a1.positionid END) ......ON a1.id=a12.cid

错误现象和解决方法

出现这个错误的原因非常奇葩,根据猜测是因为今天在给进群添加资源管理Llama时出现的,开启Llama然后关闭,它会修改impalad的资源上限,之前是32G的,结果被修改成了8G,而我还不知道被改了,也是看了很久才发现的。

今天在线上测试Llama后,因为感觉不太合适就关掉了,然后就开始出现各种的Memory Limit的错误,之前的正常运行的大Query今天集群失败,以前是没有错误的。定位后,修改一下大小就行了。

这个问题出现后,还出现过一次其它的问题,但是只出现了一次,不明白是什么原因,因为没有复现,所以没再处理。

Memory limit exceeded The memory limit is set too low initialize the spilling operator. The minimum required memory to spill this operator is 528.00 MB.

2016-04-07 19:53:00

转载于:https://www.cnblogs.com/dantezhao/p/5365118.html

你可能感兴趣的文章
基础笔记一
查看>>
uva 10137 The trip
查看>>
Count Numbers
查看>>
编写高质量代码改善C#程序的157个建议——建议110:用类来代替enum
查看>>
网卡bond技术
查看>>
UITabbarController的UITabbarItem(例:"我的")点击时,判断是否登录
查看>>
UNIX基础知识之输入和输出
查看>>
【洛谷 P1666】 前缀单词 (Trie)
查看>>
数据库锁机制及乐观锁,悲观锁的并发控制
查看>>
图像处理中双线性插值
查看>>
RobHess的SIFT代码解析之RANSAC
查看>>
03 线程池
查看>>
201771010125王瑜《面向对象程序设计(Java)》第十三周学习总结
查看>>
手机验证码执行流程
查看>>
python 基础 ----- 变量
查看>>
设计模式课程 设计模式精讲 2-2 UML类图讲解
查看>>
Silverlight 的菜单控件。(不是 Toolkit的)
查看>>
:hover 鼠标同时触发两个元素变化
查看>>
go语言学习十三 - 相等性
查看>>
Idea 提交代码到码云(提交到github也大同小异)
查看>>