我运行在一个poc环境中,其中只有一个名称节点和一个数据节点在运行。impala守护程序正在数据节点上运行。两个节点都有128gb内存。我已将内存限制设置为60gb。
我在 Impala 有两张大table。第一个表约有6.35亿条记录,而第二个表约有25万条记录。我使用一个公共参数内部连接这两个表。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.03mbvcores=2。当我运行这个查询时,花了一个多小时才返回结果。我想知道为什么花了这么长时间。这与内存限制设置有关吗?如何调整这样的查询?
1条答案
按热度按时间hsvhsicv1#
尝试调整为impala性能
一些理想
尝试
big_table
加入small_table
param列上的分区如果同时执行多个查询,则应启用准入控制(2)和动态资源池(3)
尝试执行
summary
在impala shell中执行查询之后,看看哪一步需要很长时间。请公布所有解释声明的结果
p/s:抱歉,因为我没有足够的声誉张贴超过2个链接