spark 如何 多个application同时运行不报错

如题,在代码层面,已经设置了config的
set("spark.driver.allowMultipleContexts","true")
但是同时两个任务提交的时候还是会出现两个任务都阻塞掉的问题
求教下,这个如何友好的优化,谢谢啦

在spark的Job Scheduling中介绍了spark多个任务同时执行,相关链接为:

https://spark.apache.org/docs/1.2.0/job-scheduling.html

spark要实现多个application同时运行,涉及到多个application的资源共享。在spark on yarn模式下,yarn可以用来管理集群资源。为了能够比较好的利用集群的内存资源和cpu资源,需要使用spark的Dynamic Resource Allocation 功能

   Dynamic Resource Allocation有一个问题,就是executor空闲的时候,executor会被remove,但是executor执行后的数据结果很可能被其它executor使用,为了解决这个问题spark需要启动external shfuffle service,相关配置为往yarn-site.xml文件加入如下内容:

spark2.x运行多个application是可以的啊,一个spark application只能启动一个SparkContext,你想运行多个 application把spark程序打包,多次提交就可以了,不知道是不是我理解错了,你是不是想一个SaprkContext中,运行多个应用程序,SparkContext感觉和tomcat一样,而你想运行多个web程序?

spark2.x运行多个application是可以的啊,一个spark application只能启动一个SparkContext,你想运行多个 application把spark程序打包,多次提交就可以了

参考这个例子:
SparkConf conf = new SparkConf();
conf.setAppName("Spark MultipleContest Test");
conf.set("spark.driver.allowMultipleContexts", "true");
conf.setMaster("local");

SparkContext sc = new SparkContext(conf);
SQLContext sqlContext = new org.apache.spark.sql.SQLContext(sc);

//Create a Java Context which is the same as the scala one under the hood
JavaSparkContext.fromSparkContext(sc)

park要实现多个application同时运行,涉及到多个application的资源共享。在spark on yarn模式下,yarn可以用来管理集群资源。为了能够比较好的利用集群的内存资源和cpu资源,需要使用spark的Dynamic Resource Allocation 功能

在spark on yarn模式下,yarn可以用来管理集群资源。为了能够比较好的利用集群的内存资源和cpu资源,需要使用spark的Dynamic Resource Allocation 功能