Impala各个组件、Sql语句分析步骤,优点缺点
优点:
缺点:
分区哈希连接需要更多的网络开销,但可以允许大表的连接而不要求整个表的数据都能放到一个节点的内存中。当统计数据显示表太大而无法放到一个节点的内存中或者有查询提示时就会使用分区哈希连接。
进行分区哈希连接时(也称为shuffle join),每个Impala进程读取两个表的本地数据,使用一个哈希函数进行分区并把每个分区分发到不同的Impala进程。
正如上图所示,大表的数据也通过相同的哈希函数就行分区并把分区发送能和小表相应数据进行连接的结点。注意,和广播连接不同的是,广播连接只有小表的数据需要通过网络分发,而分区哈希连接需要通过网络分发大表和小表的数据,因此需要更高的网络开销。
Impala有两种连接策略:广播连接,需要更多的内存并只适用于大小表连接。分区连接,需要更多的网络资源,性能比较低,但是能进行大表之间的连接。
Impala2.3之前使用的是yarn作为资源调度,2.3之后自身的资源调度策略Long-Lived Application Master,即LIAMA
explain [sql语句]
explain select count(*) from action;
set request_pool = impala100;
set mem_limit=100m
set explain_level=3;
INVALIDATE METADATA;
REFRESH [table_name]