环境:FusionInsight-Hive-1.1.0
现象:这段时间项目中新开了一些sql,在执行这些sql的时候,集群的CPU使用率平均达到90%,导致集群基本处于停摆状态,其他的sql却能正常执行。
排查:单独执行有问题的sql,检查其application,发现container的分配不正常,application一直运行,container的数量也在一直上升;再检查具体的任务,跑的都是map任务,检查日志后,一直在做查询;jie结合sql的查询条件,以及map的日志,发现map根本没有根据查询条件查询数据,理论上我们的sql用的分区字段查数据,是会很快出结果的,但是事与愿违,怀疑分区可能出问题了。
上网一搜,找到一篇帖子http://www.aboutyun.com/thread-16426-1-1.html,问题已经很明朗了。
当我们试着把sql里面的分区查询值从函数改成具体值,查询瞬间无压力,问题得到定位。至于怎么解决,就没我的事情了。
补充一点:concat 、substr 这类函数不存在这个问题