Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark SparkException:纱线应用程序已结束!多次呼叫时_Apache Spark_Pyspark - Fatal编程技术网

Apache spark SparkException:纱线应用程序已结束!多次呼叫时

Apache spark SparkException:纱线应用程序已结束!多次呼叫时,apache-spark,pyspark,Apache Spark,Pyspark,我有以下spark配置: 返回SparkSession.builder\ .master(“纱线”)\ .appName(“我的应用程序”)\ .config(“spark.driver.bindAddress”,“0.0.0.0”)\ .config(“spark.driver.host”,主机)\ .config(“spark.driver.port”,端口)\ .config(“spark.driver.memory”、“4G”)\ .config(“spark.executor.memo

我有以下spark配置:

返回SparkSession.builder\
.master(“纱线”)\
.appName(“我的应用程序”)\
.config(“spark.driver.bindAddress”,“0.0.0.0”)\
.config(“spark.driver.host”,主机)\
.config(“spark.driver.port”,端口)\
.config(“spark.driver.memory”、“4G”)\
.config(“spark.executor.memory”,“8G”)\
.config(“spark.blockManager.port”,port\u block\u manager)\
.config(“spark.driver.allowMultipleContexts”,“true”)\
.enableHiveSupport()\
.getOrCreate()
从spark im加载数据帧到pandas。我在微服务中使用它向前端提供数据。当只有一个请求时,一切正常,但如果两个不同的前端同时请求相同的内容,我会收到一个错误:

17/09/21 13:04:56错误spark.SparkContext:初始化SparkContext时出错。
org.apache.spark.SparkException:应用程序已结束!它可能已被杀死或无法启动应用程序主机。
位于org.apache.spark.scheduler.cluster.YarnClientSchedulerBackend.waitForApplication(YarnClientSchedulerBackend.scala:85)
位于org.apache.spark.scheduler.cluster.YarnClientSchedulerBackend.start(YarnClientSchedulerBackend.scala:62)
位于org.apache.spark.scheduler.TaskSchedulerImpl.start(TaskSchedulerImpl.scala:173)
位于org.apache.spark.SparkContext(SparkContext.scala:509)
位于org.apache.spark.api.java.JavaSparkContext(JavaSparkContext.scala:58)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:423)
位于py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:247)
位于py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
在py4j.Gateway.invoke处(Gateway.java:236)
位于py4j.commands.ConstructorCommand.invokeConstructor(ConstructorCommand.java:80)
在py4j.commands.ConstructorCommand.execute处(ConstructorCommand.java:69)
在py4j.GatewayConnection.run处(GatewayConnection.java:214)
运行(Thread.java:748)
17/09/21 13:04:56警告群集。YarnSchedulerBackend$YarnSchedulerEndpoint:试图在AM注册之前请求执行者!
17/09/21 13:04:56警告metrics.MetricsSystem:停止未运行的MetricsSystem
回溯(最近一次呼叫最后一次):
文件“\uuuu服务\uuuuu.py”,第52行,在
main()
文件“\uuuuu服务\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
spark=获取spark会话(“调整后的销售临时数据读取”)
在get_spark_会话中的第61行文件“__服务__”
.config(“spark.driver.allowMultipleContexts”,“true”)\
文件“/usr/local/spark/python/pyspark/sql/session.py”,第169行,在getOrCreate中
sc=SparkContext.getOrCreate(sparkConf)
getOrCreate中的文件“/usr/local/spark/python/pyspark/context.py”,第334行
SparkContext(conf=conf或SparkConf())
文件“/usr/local/spark/python/pyspark/context.py”,第118行,在__
形态、jsc、探查器(cls)
文件“/usr/local/spark/python/pyspark/context.py”,第180行,在
self.\u jsc=jsc或self.\u初始化上下文(self.\u conf.\u jconf)
文件“/usr/local/spark/python/pyspark/context.py”,第273行,在初始化上下文中
返回self._jvm.JavaSparkContext(jconf)
文件“/usr/local/lib/python2.7/dist packages/py4j/java_gateway.py”,第1428行,在__
回答,自我。\网关\客户端,无,自我。\ fqn)
文件“/usr/local/lib/python2.7/dist packages/py4j/protocol.py”,第320行,在get_return_值中
格式(目标id,“.”,名称),值)
py4j.protocol.Py4JJavaError:调用None.org.apache.spark.api.java.JavaSparkContext时出错。
:org.apache.spark.SparkException:纱线应用程序已结束!它可能已被杀死或无法启动应用程序主机。
位于org.apache.spark.scheduler.cluster.YarnClientSchedulerBackend.waitForApplication(YarnClientSchedulerBackend.scala:85)
位于org.apache.spark.scheduler.cluster.YarnClientSchedulerBackend.start(YarnClientSchedulerBackend.scala:62)
位于org.apache.spark.scheduler.TaskSchedulerImpl.start(TaskSchedulerImpl.scala:173)
位于org.apache.spark.SparkContext(SparkContext.scala:509)
位于org.apache.spark.api.java.JavaSparkContext(JavaSparkContext.scala:58)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:423)
位于py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:247)
位于py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
在py4j.Gateway.invoke处(Gateway.java:236)
位于py4j.commands.ConstructorCommand.invokeConstructor(ConstructorCommand.java:80)
在py4j.commands.ConstructorCommand.execute处(ConstructorCommand.java:69)
在py4j.GatewayConnection.run处(GatewayConnection.java:214)
运行(Thread.java:748)

我以为设置
spark.driver.allowMultipleContexts=true
会对她起作用,但显然不行。我如何获得独立于使用量的
SparkSession
呢?我可以为每次使用创建单独的会话或上下文吗?

只是为了记录:spark实际上不支持多个上下文(
allowMultipleContexts
只是避免了一个异常,但允许未定义的行为)并且很可能在将来不支持