2016-12-16 35 views
1

我有一个关于在集群模式下在YARN上运行的Apache Spark的问题。根据this thread,Spark本身不必安装在群集中的每个(工作)节点上。我的问题在于Spark Executors:通常,YARN或者说资源管理器应该决定资源分配。因此,Spark Executors可以在群集中的任何(工作)节点上随机启动。但是,如果Spark没有安装在任何(worker)节点上,那么Spark如何由YARN启动呢?如果Spark(在YARN上)没有安装在worker节点上,Spark Executors是如何启动的?

+0

执行者需要以某种方式获得Spark运行时。这可以通过在节点上安装或将其与应用程序一起运输来实现,例如,在一个捆绑Spark的肥缸里。我认为... – LiMuBei

+1

您不必将二进制文件包含在fatjar/uberjar中 - 它是由spark-submit自动提供的。 –

回答

1

在高电平,当火花应用上YARN启动,

  1. 一个应用主站(火花特定)将在YARN容器的一个来创建。用于星火工人(遗嘱执行人)

星火司机

  • 其它纱集装箱将通过序列化操作(代码)执行人处理数据。

    火花组装提供火花相关罐子运行 纱线集群与应用星火作业将有其自身功能相关 罐子。


    编辑:(2017年1月4日)

    火花2.0 不再需要用于生产 部署脂肪组件罐子source

  • +0

    感谢您的回答。我知道YARN容器。据我了解,一个执行者(实际上是一个进程)在“容器”中启动。但是,执行程序本身仍然是一个Spark特定组件。因此,我的问题是:如果Spark未安装在任何工作节点上,Spark Executors如何启动(在YARN容器中)? – h4wX

    +0

    是的!执行程序是一个进程,所有的计算逻辑将通过spark驱动程序传递给它。其他jar如** spark-assembly **将在所有工作人员可用时通过在应用程序启动时将它们移动到HDFS(这是一个自动化过程)。 – mrsrinivas

    +0

    是的,没错,但是在具体情况下这是如何工作的? – h4wX

    相关问题