1.文档编写目的
默认情况下,CDH集群中的Impala Daemon又可以充当查询的coordinator,也可以作为executor来执行查询本身,coordinator类似一个查询作业的管理角色一样负责协调各个Impala Daemon上的executor。在大规模集群中,Impala作业比较多的情况下,一个Impala Daemon既作为coordinator又作为executor是比较常见的,这就不可避免的会带来一些问题:
1.coordinator与executor会互相干扰带来性能问题。对于较大或者复杂的查询的时候,coordinator会带来大量的网络和CPU开销。每个coordinator都会缓存所有表分区和数据文件的元数据,同时作为executor它还需要处理join,聚合或者其他操作,这些都需要大量内存。
2.将大量主机都作为coordinator会造成不必要的网络开销,甚至是timeout错误,因为每个coordinator都需要与statestore进程通信以进行元数据更新。
3.当有大量查询负载较重的Impala Daemon作为coordinator时,会更容易超过admission control所设置的"soft limits"。
所以从CDH5.12开始,Impala支持分离coordinator与executor,可以明确指定哪些主机只作为coordinator,而不作为executor。这些节点不会参