impala遇到的问题记录

初次接触impala很多东西还不是很清楚,踩了几个小坑记录一下
1.问题:表发生join时内存溢出
解决办法:对两表都进行compute stats,因为impala对表进行操作后只会并不会立即统计分析表和列的结构(因为这个操作会有一定消耗),使用compute stats会更新这些信息并保存到MetaStore,Impala联表查询时会利用这些信息优化查询的策略减少消耗。
参考https://docs.cloudera.com/documentation/enterprise/5-9-x/topics/impala_compute_stats.html

2.问题:我们有一个接口服务执行impala sql,如何保证执行完各impalad节点同步数据(如果不设置集群sync dll,则集群不会同步各节点数据)
解决办法:根据官方给的思路,我们在sql执行完之后再创建一张空的临时表,设置集群sync dll为true,再drop掉临时表,设置集群sync dll false,这时集群的数据就会同步,并且性能最好。
参考https://docs.cloudera.com/documentation/enterprise/5-15-x/topics/impala.html

3.问题:表发生join时很慢
解决办法:join时要考虑广播量,如果是left join则会广播右表(广播量相当于右表大小乘以左表数据在机器的台数), 要考虑好sql的优化或者适当清理掉右表中无用的数据减小表的大小

猜你喜欢

转载自blog.51cto.com/13665344/2446072