准入控制嵌入在每个impalad守护进程中,并通过statestore服务进行通信。impalad守护进程确定查询是立即运行还是排队。但是,如果突然的请求流导致并发运行的查询比预期的多,则总体Impala内存限制和集群级别的Linux cgroups机制将作为硬限制,以防止内存过度分配。当查询达到这些限制时,Impala会取消查询。
这是否意味着在单个Impala守护进程级别或群集级别强制实施Impala资源限制?
发布于 2017-09-16 11:49:18
答案是两者都有。每个impalad守护进程都有自己的MEM_LIMIT。超过该值将导致查询被取消。准入控制池在群集级别工作,即使gatekeep (决定查询是否应该运行或排队)在每个impalad级别,即使这些impalad基于群集级别的池资源做出准入决策。这就是为什么当有大量查询发送到不同的impalad实例时,impalad守护进程可能会允许更多的查询,因为它们当时无法获得最新的集群资源使用信息。CGroup限制不会导致查询被取消。它确定当存在CPU争用时impalad应该获得的CPU百分比。
https://stackoverflow.com/questions/46243792
复制相似问题