我使用Spark Hidden Rest提交了一个Spark作业。我用的例子是字数。使用spark-submit运行此作业工作正常,输出目录与适当的hdfs文件一起创建wordcount。但是,当我使用Spark隐藏的REST API运行相同的程序时,输出hdfs文件只创建内部的临时文件而没有输出。
以下是我为Spark REST发送的请求,该请求在作业完成后提交作业
curl -X POST http://clusterIP:6066/v1/submissions/create --header "Content-Type:application/json;charset=UTF-8" --data '{
"action" : "CreateSubmissionRequest",
"appArgs" : [ "hdfs://clusterIP:8020/tmp/inputfile"],
"appResource" : "hdfs://clusterIP:8020/tmp/Sparkwc.jar",
"clientSparkVersion" : "1.6.0",
"environmentVariables" : {
"SPARK_ENV_LOADED" : "1"
},
"mainClass" : "org.learningspark.simple.WordCount",
"sparkProperties" : {
"spark.driver.supervise" : "true",
"driverCores": "8",
"superviseDriver": "true",
"executorMemory": "2g",
"totalExecutorCores": "40",
"jars": "hdfs://clusterIP/tmp/Sparkwc.jar",
"spark.app.name" : "WordCountTest",
"spark.eventLog.enabled": "true",
"spark.submit.deployMode" : "cluster",
"spark.master" : "spark://clusterIP:6066"
}
}'
但是使用下面的spark-submit命令运行相同的程序可以正常创建带有wordcount输出的hdfs输出文件(而不是hdfs输出文件,只有临时文件,以防火花休息):
spark-submit --class WordCount --total-executor-cores 4 --master spark://clusterIP:7077 Sparkwc.jar hdfs://clusterIP:8020/tmp/inputfile
感谢。