【发布时间】:2022-08-14 20:44:55
【问题描述】:
我在 EMR (6.6) 上运行 spark thrift,并启用了托管扩展。 有时,我们的 SQL 会堆叠很长时间(45m),直到有新请求到达服务器并释放它。
当这种情况发生时,我们会看到 EMR 要求杀死的任务节点上有一个执行程序。
这种行为的原因可能是什么?怎么可能避免?
我在 EMR (6.6) 上运行 spark thrift,并启用了托管扩展。 有时,我们的 SQL 会堆叠很长时间(45m),直到有新请求到达服务器并释放它。
当这种情况发生时,我们会看到 EMR 要求杀死的任务节点上有一个执行程序。
这种行为的原因可能是什么?怎么可能避免?
事实证明,AWS 有一个功能可以阻止 Spark 将任务发送到在 DECOMMISSIONING 节点上运行的执行程序。
所以在我们的例子中,我们有 min-executor = 1 并且最后一个在 DECOMMISSIONING 节点上。所以 spark 不会向它发送任何任务,但它不会请求新资源,因为它有那个 executor。
【讨论】: