为什么Spark执行者需要与Worker连接

时间:2016-12-21 21:39:43

标签: apache-spark

当我启动一个Spark作业时,我会发现Executor启动命令行如下:

bin/java -cp /opt/conf/:/opt/jars/* -Xmx1024M -Dspark.driver.port=56559 
org.apache.spark.executor.CoarseGrainedExecutorBackend 
--driver-url spark://CoarseGrainedScheduler@10.1.140.2:56559 
--executor-id 1 --hostname 10.1.140.5 --cores 2 
--app-id app-20161221132517-0000 
--worker-url spark://Worker@10.1.140.5:56451

从上面的命令我们会找到行--worker-url spark://Worker@10.1.140.5:56451,我很好奇,为什么Executor需要与Worker沟通,在我看来,执行者只需要与其他执行者交谈,驱动程序。

2 个答案:

答案 0 :(得分:1)

enter image description here

您可以在上面的图片中看到Executors are part of worker nodes

应用程序:基于Spark构建的用户程序。由群集上的driver program and executors组成。

工作线程:群集中可以run application code的任何节点

执行者:为应用on a worker node启动了一个流程,runs tasks and keeps data in memory or disk存储了这些流程。每个应用程序都有自己的执行程序。

Source

答案 1 :(得分:0)

执行者的命运与工人的命运联系在一起。如果工人异常终止,执行者必须能够检测到这一事实并自行停止。如果没有这个过程,最终可能会遇到“幽灵”执行者。

相关问题