Scala 如果未启动SparkContext,则群集模式下的Spark将引发错误
我有一个Spark作业,仅在确实必要时才初始化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
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无法确定应用程序的状态-这就是为什么会出现错误