最近项目有用到spark-jobserver来提供对外服务,主要用到的是他的面向job和context管理的REST接口
一:部署安装
这里就不再赘述来,网上很多个例子,可以参考
http://www.cnblogs.com/xiongmaotailang/p/5649256.html
这篇博客的内容,觉得写的还是可以的。
需要注意的一点是spark的版本问题,还有使用maven依赖的时候job-server-api_2.10 的版本问题,(主要是使用新老接口的问题即使用SparkJob或者NewSparkJob,在curl 提交作业的时候会宝少包的问题.我使用的是0.5.1 接口使用的SparkJob)
二:使用
1)首先需要初始化spark context
这里写代码片
curl -d "" 'ip:port/contexts/contextName?context-factory=spark.jobserver.context.SQLContextFactory'
2)上传jar包
curl --data-binary @/XXXX.jar ip:port/jars/appName
curl -d "input.string= \"{\"aa\":13}\" " "ip:port/jobs?appName=XXX&classPath=XXX"
➜ sparkjobserver curl -d "input.string= \"{\"aa\":13}\" " "localhost:8090/jobs?appName=mp_report&classPath=com.jfbank.data.BeginProject"
{
"status": "STARTED",
"result": {
"jobId": "c9eb7f44-9c8e-45aa-a50f-18209adb743b",
"context": "32137c4e-com.jfbank.data.BeginProject"
}
}%
curl localhost:8090/jobs/jobId
也可以
curl -d "input.string = a b c a b see" "localhost:8090/jobs?appName=test&classPath=spark.jobserver.WordCountExample&context=test-context&sync=true"
三:优化
后续补充