impala使用及调优

Impala是基于Hive的大数据实时分析查询引擎,直接使用Hive的元数据库Metadata,意味着impala元数据都存储在Hive的metastore中。

Hive适合于长时间的批处理查询分析,而Impala适合于实时交互式SQL查询。

在impala中一条SQL语句先后经历BeeswaxService.Query->TClientRequest->TExecRequest,最后把TExecRequest交由impala-coordinator分发给多个backend处理。

 

查询语句:

show table status students;

describe students;

 

impala优化:

>explain sql; #查看执行计划

>profile; #输出底层信息计划

>summary;#查看查询时间及占用内存

注意项:

1)Join的时候大表一定要放在左边,因为impala在广播右侧表,所以右侧表会复制到需要右侧表进行联接的所有节点。

2)广播连接(Broadcast joins) 是默认方式,右侧的表被认为比左侧的表小,并且它的内容被发送到查询涉及到的其他节点上。替代的技术称作分割连接(partitioned join) (与分区表无关),更适用于近乎相同大小的大型表的连接。使用这一技术,每一个表的部分内容被发送到对应的其他节点,然后这些行的子集可以并行处理。广播和分区连接的选择仍然依赖于连接中所有表的可用的、使用 COMPUTE STATS 语句的统计信息。

 

impala配置项:

set DISABLE_UNSAFE_SPILLS=0/FALSE; #0(FALSE)内存运算濒临溢出时转为磁盘运算,1(TRUE)时,当内存溢出时直接报内存溢出“Memory limit exceeded”错误

set mem_limit=-1 #取消内存限制;

 

参考资料:

Impala和Hive的关系(详解):https://www.cnblogs.com/zlslch/p/6785207.html

Impala原理及其调优:https://www.cnblogs.com/chenz/articles/3947147.html

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值