请说明 Presto 中任务调度的运作机制,并介绍如何设置或调整其调度策略。
考察说明
考查对 Presto 任务调度核心流程和配置调整的理解。
回答思路
- 【回答框架 1】Presto 采用主从架构,协调节点负责接收查询、解析、规划并生成执行计划,然后由调度器将任务分发到工作节点执行。
- 【回答框架 2】调度器根据数据本地性优先将任务分配到数据所在节点,以减少网络传输,并考虑节点负载均衡。
- 【回答框架 3】常见配置参数包括 task.max-memory、task.max-worker-threads 等,可在 config.properties 中调整以影响调度行为。
- 【回答框架 4】坐标多个查询的并发调度由查询管理器和资源组共同控制,可通过 resource group 配置并发限制和优先级。
- 【关键点 1】Presto 的调度主要发生在协调节点,按分片分配任务。
- 【关键点 2】数据本地性优先减少网络IO。
- 【关键点 3】资源组配置影响并发和优先级。
- 【关键点 4】主要配置在 config.properties 中。
- 【易错点 1】易混淆调度器与资源组管理,前者是物理分发,后者是逻辑限制。
- 【易错点 2】只调整并行度而不考虑内存限制可能导致OOM。
- 【易错点 3】遗漏本地性与动态过滤的配合使用。