EMR上PrestoSQL/Trino集群自动缩容终止运行中查询问题咨询
问题根因
- 该问题不属于Trino(原PrestoSQL)本身的已知缺陷,本质是AWS EMR托管自动扩缩容能力的适配限制导致
- EMR官方的节点优雅关闭逻辑目前仅对PrestoDB做了专属适配,缩容触发时会主动调用PrestoDB的优雅下线接口等待节点上运行的任务完成后再终止节点;但该逻辑没有适配Trino的对应接口,所以缩容时会直接终止节点进程,导致节点上的运行中查询被强制杀死
- 你调整的自动扩缩容
cooldown参数仅用于控制两次扩缩容操作的最小间隔时间,和缩容执行阶段是否等待任务完成没有关联,因此无法解决该问题
可行解决方案
- 自定义扩缩容逻辑替代EMR原生自动扩缩容:基于CloudWatch指标触发自定义Lambda函数,缩容前先调用Trino的
PUT /v1/worker/{nodeId}/shutdown优雅下线接口,等待节点上任务全部执行完成后,再调用EMR API终止对应节点 - 若暂时不想改造扩缩容链路,可关闭自动缩容,替换为定时扩缩容策略,结合业务负载规律提前规划节点数量,避免核心业务时段触发缩容操作
- 临时过渡方案:仅在业务低峰期开放自动缩容能力,尽量减少缩容对线上查询的影响
内容的提问来源于stack exchange,提问作者yahoo
相关产品推荐
相关产品推荐

