我可以拥有一个apache Spark集群,其中不同的节点运行不同版本的Spark吗?例如,我可以拥有Spark 2.2.0的主服务器,2.0.1的一个节点,2.2.0的另一个节点和1.6.3的另一个节点,或者所有节点都应该具有相同版本的Spark吗?
答案 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)。