Spark 独立模式:工作人员未正确停止

Posted

技术标签:

【中文标题】Spark 独立模式:工作人员未正确停止【英文标题】:Spark Standalone Mode: Workers not stopping properly 【发布时间】:2013-06-14 20:30:17 【问题描述】:

当使用

在 spark (0.7.0) 中停止整个集群时
$SPARK_HOME/bin/stop-all.sh

并非所有工作人员都正确停止。 更具体地说,如果我想重新启动集群

$SPARK_HOME/bin/start-all.sh

我明白了:

host1: starting spark.deploy.worker.Worker, logging to [...]
host3: starting spark.deploy.worker.Worker, logging to [...]
host2: starting spark.deploy.worker.Worker, logging to [...]
host5: starting spark.deploy.worker.Worker, logging to [...]
host4: spark.deploy.worker.Worker running as process 8104. Stop it first.
host7: spark.deploy.worker.Worker running as process 32452. Stop it first.
host6: starting spark.deploy.worker.Worker, logging to [...]

在 host4 和 host7 上,确实有一个 StandaloneExecutorBackend 仍在运行:

$ jps
27703 Worker
27763 StandaloneExecutorBackend
28601 Jps

简单重复

$SPARK_HOME/bin/stop-all.sh

不幸的是也没有阻止工人。 Spark 只是告诉我工人即将停止:

host2: no spark.deploy.worker.Worker to stop
host7: stopping spark.deploy.worker.Worker
host1: no spark.deploy.worker.Worker to stop
host4: stopping spark.deploy.worker.Worker
host6: no spark.deploy.worker.Worker to stop
host5: no spark.deploy.worker.Worker to stop
host3: no spark.deploy.worker.Worker to stop

没有spark.deploy.master.Master 停止

然而,

$ jps
27703 Worker
27763 StandaloneExecutorBackend
28601 Jps

另有说法。 有人知道stop-all.sh 如何正常工作吗? 谢谢。

【问题讨论】:

【参考方案1】:

原因似乎是缓存整个数据集的尝试导致 Worker 机器大量交换。在这种情况下,工作机器的数量对于数据集来说太少了。

【讨论】:

以上是关于Spark 独立模式:工作人员未正确停止的主要内容,如果未能解决你的问题,请参考以下文章

用idea调试Spark独立集群

Spark SQL表分区找不到文件

Spark 独立模式多个 shell 会话(应用程序)

Spark Dataframe Write to CSV 在独立集群模式下创建 _temporary 目录文件

mongoose 的“有独立工作收入的员工”模式设计的问题

以独立模式在主节点上启动多个工作程序