Impala查询性能

时间:2017-03-31 09:07:06

标签: impala

我在POC环境中运行,其中只有一个名称节点和一个数据节点在运行。 Impala守护程序正在数据节点上运行。两个节点各有128GB内存。我把mem_limit设置为60GB。

我在Impala有两张大桌子。第一张表有大约6.35亿条记录,第二张表大约有250000条记录。我内部使用一个通用参数连接这两个表。 SQL语句如下:

select a.*, b.* from table_a a inner join table_b b on a.param=b.param order by a.t_date desc

当我使用 EXPLAIN 时,它显示估计的每个主机要求:内存= 992.03MB VCores = 2 。当我运行此查询时,花了一个多小时,结果还没有返回。我想知道为什么花了这么长时间。这与mem_limit设置有关吗?我该如何调整这样的查询?

1 个答案:

答案 0 :(得分:1)

尝试调整为Impala performance

一些理想的

  • 尝试big_table加入small_table
  • 对param列进行分区
  • 如果有很多 查询执行的同时,应该启用Admission controll(2)和动态资源池(3)
  • 在impala-shell中执行查询后尝试执行summary以查看需要很长时间的步骤。
  • 并且plz发布EXPLAIN语句的所有结果

P / S:很抱歉,因为我没有足够的声望发布超过2个链接