クラスタ内の隠れたREST APIを使用してスパークジョブをトリガしようとしています。私はspark jobを起動することができますが、明示的にkillしない限り、何度も何度も実行し続けます。RESTのスパークジョブをトリガすると無限にジョブが実行されます
私の要求は、私が仕事を提出し、一度だけ、それを実行するために期待してい
curl -X POST http://sparkmaster:6066/v1/submissions/create --header "Content-Type:application/json;charset=UTF-8" --data '{
"action" : "CreateSubmissionRequest",
"appArgs" : ["10"],
"appResource" : "file:/path/to/myapp.jar",
"clientSparkVersion" : "1.6.1",
"environmentVariables" : {
"SPARK_ENV_LOADED" : "1"
},
"mainClass" : "com.brevitaz.app.Main",
"sparkProperties" : {
"spark.jars" : "file:/path/to/myapp.jar",
"spark.driver.supervise" : "true",
"spark.app.name" : "MySparkJob",
"spark.eventLog.enabled": "true",
"spark.submit.deployMode" : "client",
"spark.master" : "spark://sparkmaster:6066"
}
}'
次応答
{
"action" : "CreateSubmissionResponse",
"message" : "Driver successfully submitted as driver-20170524105859-0022",
"serverSparkVersion" : "1.6.1",
"submissionId" : "driver-20170524105859-0022",
"success" : true
}
のように見えます。スパークで同じことを達成する方法はありますか?
私はスパークジョブをトリガーする他の方法も開いています。私が必要とするのは、スカラベースのWebアプリケーションからspark jobの実行を一度起動することだけです。