我有一个关于impala中数据位置的问题,假设我有一个包含10个数据节点的集群(每个数据节点上都有impalad),如果我在impala中执行查询的话 SELECT * FROM big_table where dt='2017' where blabla orderby blabla group by blabla
(假设这是一个大问题)。
假设分区(dt=2017')下的文件是dn 1,3,5,那么如果我执行查询,协调器是只使用守护进程1,3,5作为数据位置,还是使用所有守护进程,其他守护进程将远程读取这些数据?
1条答案
按热度按时间yi0zb3m41#
简单回答您的问题:它只使用守护进程1、3、5作为数据位置。
这通常是一个调度问题。 Impala 会做出这样的决定
simple-scheduler.cc
.如果有一个后端共有,impala不会使用其他后端扫描datanode。对于没有scannode的片段,如分区聚合节点,impala将它们放在与输入片段所在的位置相同的位置。