DC/OS on AWS で実行されるストリーミング ジョブがあります。初めてジョブを実行し、チェックポイント フォルダーを 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プロパティを変更しようとすることですが、これをまったく設定していません。
私のスパーク構成は非常に単純で、次のようになります。
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 Spark のパラメーターとプロパティにエラーがあることを意味します。
JIRA の問題も提出しました: https://dcosjira.atlassian.net/browse/DCOS-131