1、尽量少使用 invalidate metadata,尽量用REFRESH TABLE_NAME;
2、set APPX_COUNT_DISTINCT=true 与 ndv 函数是一样的,都只是估值
Impala SQL 不支持的一个查询中的多个聚合函数使用 DISTINCT
如:select count(distinct id),count(distinct uid) from table;执行会报错
impala 提供了 ndv 函数 及 set APPX_COUNT_DISTINCT=true 参数。但这两个都不是精确值
3、impala 保存含中文结果到文件
impala-shell -i hadoop07 -B -q ‘select “我” from dual’ -o result.txt
这个太坑了
修改 /data/cloudera/parcels/CDH-5.6.0-1.cdh5.6.0.p0.45/bin/…/lib/impala-shell/impala_shell.py
添加
coding=utf-8
import sys
reload(sys)
sys.setdefaultencoding(‘utf-8’)
然后修改:
query = self.imp_client.create_beeswax_query(“select %s” % args,self.set_query_options)
为
query = self.imp_client.create_beeswax_query(“select %s” % (args.encode(‘utf-8’)),self.set_query_options)
4、impala 内存限制问题,超出内存查询任务就被杀死
这个猜测有两种可能:
1、就是的确集群