独立群集中

时间:2016-12-04 22:33:07

标签: scala apache-spark

我想了解提交Spark应用程序的时间,哪个节点将充当驱动程序节点,哪个节点将作为工作节点?

例如,如果我有3个节点的独立群集。

当提交spark第一个应用程序(app1)时,spark框架将随机选择一个节点作为驱动程序节点,其他节点作为工作节点。这仅适用于app1。在执行期间,如果提交了另一个spark应用程序(app2),spark可以随机选择一个节点作为驱动程序节点,其他节点作为工作节点。这仅适用于app2。因此,当两个spark应用程序都在执行时,可能存在两个不同节点可以是主节点的情况。如果误解,请纠正我。

1 个答案:

答案 0 :(得分:4)

你走在正确的轨道上。 Spark有一个Worker节点的概念,用于计算。每个这样的工作者都可以在其上运行N个Executor进程。如果Spark指定要在任意Worker上运行的驱动程序,并不意味着Worker不能运行运行计算的其他Executor进程。

至于您的示例,Spark不会选择主节点。主节点在环境中是固定的。它选择的是运行驱动程序的位置,这是SparkContext在应用程序生命周期内的生存地。基本上如果你换成Master和Driver,你的答案是正确的。