我有一个在 AWS 上的 DC/OS 上运行的流式作业。当我第一次运行该作业并将检查点文件夹指定为 AWS S3 时,一切顺利。
在我停止它并重新启动它之后,我希望流式传输能够从检查点恢复,但我收到以下错误:
错误 SparkContext:初始化 SparkContext 时出错。java.lang.Exception:spark.executor.extraJavaOptions 不允许设置 Spark 选项(原为'-Dspark.mesos.executor.docker.image=mesosphere/spark:1.0.0-1.6.1-2')。使用 ./bin/spark-submit 时,直接在 SparkConf 或属性文件中设置它们。
我使用https://github.com/apache/spark/blob/master/examples/src/main/scala/org/apache/spark/examples/streaming/RecoverableNetworkWordCount.scala中的示例设置了可恢复的流,
并连接到 S3 以进行检查:Spark Streaming checkpoint to amazon s3
问题似乎是,当从检查点文件重新创建火花上下文时,它会尝试更改spark.mesos.executor.docker.image属性,但我根本没有设置它。
我的 spark 配置非常简单,如下所示:
val conf = new SparkConf()
.setAppName("wattio-pipeline")
有没有人遇到过类似的问题。
已编辑
我尝试以所有这些方式设置 spark conf:
val conf = new SparkConf()
.setAppName("wattio-pipeline")
.setExecutorEnv("SPARK_JAVA_OPTS","")
.remove("spark.executor.extraJavaOptions")
.remove("spark.mesos.executor.docker.image")
//.set("spark.executor.extraJavaOptions","")
//.set("spark.mesos.executor.docker.image","mesosphere/spark:1.0.0-1.6.1-2")
但出现同样的错误。
已编辑 2
我已经在我的本地开发机器(我们自己安装的 SMACK 堆栈)上测试了相同的 AWS S3 检查点配置,并且流媒体可以正确恢复。这意味着 DCOS 火花参数和属性存在错误。
我还提交了 JIRA 问题:https ://dcosjira.atlassian.net/browse/DCOS-131