【问题标题】:why Spark executor needs to connect with Worker为什么 Spark executor 需要连接 Worker
【发布时间】:2016-12-21 21:39:43
【问题描述】:

当我启动一项 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通信,在我看来executor只需要和其他executor和Driver通信。

【问题讨论】:

    标签: apache-spark


    【解决方案1】:

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

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

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

    Executor:为应用程序 on a worker node 启动的进程,runs tasks and keeps data in memory or disk 存储在它们之间。每个应用程序都有自己的执行程序。

    Source

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-05
        • 2015-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-04
        相关资源
        最近更新 更多