Hive问题记录:使用split等函数程序很慢的情况分析

431 阅读1分钟

一段很简单的代码,使用比如create table mobdi_test.aaa as select split(path,'\/')  from mobdi_test.path_text_nocomp;程序进度季度慢,2.9亿的数据跑了5个小时

尝试了各种方法,参数优化,udf重构等。后来才找到了原因。是hive矢量化的问题,集群开启了矢量化,本来是为了一片好心提高计算效率的。但但是很多函数是不支持的矢量化的,造成数据量很大的时候季度慢。

hive官方关于矢量化的介绍与对函数的支持情况

很明显split不在其中,set hive.vectorized.execution.enabled=false;

重跑,6的飞起,有问题多看官方wiki或者jira。