我们正在开发spark集群,即使在spark"Master"进程终止后,也能成功提交spark作业。
以下是我们正在做的全部细节。
流程详细信息:-
jps19560名称节点18369 QuorumPeerMain22414 Jps20168资源经理22235主
我们用这样的命令向这位大师提交了一份火花作业
spark-1.6.1-in-without-hadoop/bin/park-submit--class com.test.test--master yarn client--deploymode client test.jar-inincomingHost hostIP
其中hostIP具有运行"主"进程的机器的正确ip地址。在这之后,我们也可以在RMWebUI中看到作业。现在,当我们终止"主"进程时,我们可以看到提交的作业运行良好,这是我们在使用纱线模式时所期望的,并且该作业将毫无问题地运行。
现在我们扼杀了"大师"进程。但是,当我们再次提交指向当前关闭的同一主IP的同一命令"spark submit"时,我们在RM web ui(主机:8088)中再次看到作业,这是我们无法理解的,因为spark"主"被杀(主机:806),spark ui也没有来。
请注意,我们正在使用"纱线客户端"模式,如下代码
sparkProcess = new SparkLauncher()
.......
.setSparkHome(System.getenv("SPARK_HOME"))
.setMaster("yarn-client")
.setDeployMode("client")
请有人能向我解释一下这种行为吗?看了很多博客都没找到(http://spark.apache.org/docs/latest/running-on-yarn.html)和官方文件。感谢
请查看集群概述。根据您的描述,您正在纱线集群模式下运行spark应用程序,驱动程序位于您启动命令的实例中。Spark master与Spark独立集群模式有关,在您的案例启动命令中,该模式应类似于
spark-submit --master spark://your-spark-master-address:port