如何在群集中的每个节点上运行不同的Spark版本?

时间:2018-02-16 15:41:37

标签: apache-spark

我可以拥有一个apache Spark集群,其中不同的节点运行不同版本的Spark吗?例如,我可以拥有Spark 2.2.0的主服务器,2.0.1的一个节点,2.2.0的另一个节点和1.6.3的另一个节点,或者所有节点都应该具有相同版本的Spark吗?

2 个答案:

答案 0 :(得分:2)

通常当我们想在群集上安装不同版本的spark时,所有版本都将安装在所有节点上,spark执行取决于运行时使用的spark-submit(spark 1.6或spark 2.0或spark 2.2)脚本。

假设我们只在主节点上安装了spark 1.6,当我们在集群上提交作业时,说主节点被充分利用,然后纱线资源管理器将看到哪个节点可以自由运行作业,这里纱线将不要等到主节点获得一些资源,纱线会将作业提交给有免费资源的节点。因此,出于这个原因,必须在群集上的所有节点上安装所有版本的spark。

答案 1 :(得分:0)

  

我可以拥有一个Apache Spark集群,其中不同的节点运行不同版本的Spark吗?

不。这是不可能的。

原因是没有安装Spark的概念。 Spark是一个库,因此是应用程序的依赖项,一旦提交执行,该依赖项将在群集节点(至少一个,即驱动程序)上部署和执行。

话虽如此,只是您应用程序的Spark依赖版本才是正在使用的Spark版本。确切地说,使用的是spark-submit的版本(除非您使用捆绑了Spark依赖项的所谓uber-jar)。