Scala 如果未启动SparkContext,则群集模式下的Spark将引发错误

Scala 如果未启动SparkContext,则群集模式下的Spark将引发错误,scala,apache-spark,yarn,Scala,Apache Spark,Yarn,我有一个Spark作业,仅在确实必要时才初始化Spark上下文: val conf = new SparkConf() val jobs: List[Job] = ??? //get some jobs if(jobs.nonEmpty) { val sc = new SparkContext(conf) sc.parallelize(jobs).foreach(....) } else { //do nothing } 如果部署模式为“客户机”,它在纱线上运行良好 spark

我有一个Spark作业,仅在确实必要时才初始化Spark上下文:

val conf = new SparkConf()
val jobs: List[Job] = ??? //get some jobs
if(jobs.nonEmpty) {
  val sc = new SparkContext(conf)
  sc.parallelize(jobs).foreach(....)
} else {
    //do nothing
}
如果部署模式为“客户机”,它在纱线上运行良好

spark-submit --master yarn --deploy-mode client
然后我将部署模式切换到“集群”,当出现
作业时,它开始崩溃

spark-submit --master yarn --deploy-mode cluster
以下是错误文本:

信息。客户:申请报告 申请书_1509613523426_0017(状态:已接受) 17/11/02 11:37:17

信息。客户:申请报告 应用程序_1509613523426_0017(状态:失败)17/11/02 11:37:17

信息。客户端:客户端令牌:不适用诊断:应用程序 应用程序_1509613523426_0017由于的AM容器失败2次 appattempt_1509613523426_0017_u000002退出,退出代码为:-1000 更详细的输出,请检查应用程序跟踪

页码:, 单击指向每次尝试日志的链接。诊断:文件不存在 存在: hdfs://xxxxxxx/.sparkStaging/application_1509613523426_0017/__spark_libs__997458388067724499.zip java.io.FileNotFoundException:文件不存在: hdfs://xxxxxxx/.sparkStaging/application_1509613523426_0017/__spark_libs__997458388067724499.zip 在 DistributedFileSystem$22.doCall(DistributedFileSystem.java:1309) 在 DistributedFileSystem$22.doCall(DistributedFileSystem.java:1301) 在 org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) 在 org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1301) 位于org.apache.hadoop.warn.util.FSDownload.copy(FSDownload.java:253) 在 org.apache.hadoop.warn.util.FSDownload.access$000(FSDownload.java:63) 位于org.apache.hadoop.warn.util.FSDownload$2.run(FSDownload.java:361) 位于org.apache.hadoop.warn.util.FSDownload$2.run(FSDownload.java:359) 位于java.security.AccessController.doPrivileged(本机方法) javax.security.auth.Subject.doAs(Subject.java:422)位于 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698) 位于org.apache.hadoop.warn.util.FSDownload.call(FSDownload.java:358) 位于org.apache.hadoop.warn.util.FSDownload.call(FSDownload.java:62) 在java.util.concurrent.FutureTask.run(FutureTask.java:266)处 Executors$RunnableAdapter.call(Executors.java:511) 在java.util.concurrent.FutureTask.run(FutureTask.java:266)处 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 运行(Thread.java:748)

这次尝试失败了。应用程序失败。应用程序管理员 主机:不适用ApplicationMaster RPC端口:-1队列:开发人员启动时间: 1509622629354最终状态:跟踪URL失败: 用户:线程“main”中的xxx异常 org.apache.spark.SparkException:应用程序 应用程序_1509613523426_0017已完成,状态为失败 org.apache.spark.deploy.warn.Client.run(Client.scala:1104)位于 org.apache.spark.deploy.warn.Client$.main(Client.scala:1150)位于 org.apache.spark.deploy.warn.Client.main(Client.scala)位于 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)位于 invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 位于java.lang.reflect.Method.invoke(Method.java:498) org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:755) 在 org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180) 位于org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205) 位于org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:119) 位于org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 17/11/02 11:37:17信息util.ShutdownHookManager:调用了关闭挂钩 17/11/02 11:37:17 INFO util.ShutdownHookManager:正在删除目录 /tmp/spark-a5b20def-0218-4b0c-b9f8-fdf8a1802e95


这是纱线支持中的错误还是我遗漏了什么?

SparkContext
是负责与cluster manager通信的人。如果应用程序已提交到群集,但从未创建上下文,则Thread无法确定应用程序的状态-这就是您收到错误的原因。

SparkContext
是负责与群集管理器通信的人。如果应用程序已提交到集群,但从未创建上下文,则Thread无法确定应用程序的状态-这就是为什么会出现错误