【发布时间】:2018-06-29 03:19:50
【问题描述】:
我正在尝试在我的 Yarn 集群上运行 Spark ML 管道(从 JDBC 加载一些数据,运行一些转换器,训练一个模型),但每次运行它时,都会出现一对 - 有时是一个,有时是 3 或 4 个 -我的执行者中的一些在运行他们的第一个任务集时遇到了困难(他们的 3 个核心中的每一个都需要 3 个任务),而其余的则正常运行,一次检查 3 个。
到目前为止我观察到的一些事情:
- 当我将我的执行程序设置为使用 1 个内核和
spark.executor.cores(即一次运行 1 个任务)时,不会出现此问题; - 卡住的执行者似乎总是那些必须将一些分区改组才能运行任务的执行者;
- 卡住的任务最终会被另一个实例成功推测执行;
- 有时,单个任务会卡在原本正常的执行程序中,但其他 2 个内核会继续正常工作;
- 卡住的执行器实例看起来一切正常:CPU 处于 ~100%,有足够的内存空闲,JVM 进程处于活动状态,Spark 或 Yarn 都没有记录任何异常,它们仍然可以接收来自驱动程序,例如“放弃这个任务,其他人已经推测性地执行了它”——尽管出于某种原因,他们没有放弃它;
- 那些执行者永远不会被司机杀死,所以我想他们继续发送他们的心跳就好了;
关于可能导致此问题的原因或我应该尝试什么的任何想法?
【问题讨论】:
标签: apache-spark