Spark as a Service之JobServer初测

spark-jobserver提供了一个用于提交和管理Apache Spark作业(job)、jar文件和作业上下文(SparkContext)的RESTful接口。该项目位于git(https://github.com/ooyala/spark-jobserver),当前为0.4版本。

特性

“Spark as a Service”: 简单的面向job和context管理的REST接口
通过长期运行的job context支持亚秒级低延时作业(job)
可以通过结束context来停止运行的作业(job)
分割jar上传步骤以提高job的启动
异步和同步的job API,其中同步API对低延时作业非常有效
支持Standalone Spark和Mesos
Job和jar信息通过一个可插拔的DAO接口来持久化
命名RDD以缓存,并可以通过该名称获取RDD。这样可以提高作业间RDD的共享和重用

安装并启动jobServer

jobServer依赖sbt,所以必须先装好sbt。

然后访问http://localhost:8090 可以看到Web UI
job


测试job执行

这里我们直接使用job-server的test包进行测试

编译完成后,将打包的jar文件通过REST接口上传
REST接口的API如下:
GET /jobs 查询所有job
POST /jobs 提交一个新job
GET /jobs/ 查询某一任务的结果和状态
GET /jobs//config

在Web UI上也可以看到Completed Jobs相应的信息。

预先启动Context

和Context相关的API
GET /contexts ​查询所有预先建立好的context
POST /contexts ​建立新的context
DELETE ​/contexts/ ​删除此context,停止运行于此context上的所有job

配置文件

打开配置文件,可以发现master设置为local[4],可以将其改为我们的集群地址。

此外,关于数据对象的存储方法和路径:

默认context设置,该设置可以被
下面再次在sbt中启动REST接口的中的参数覆盖。

基本的使用到此为止,jobServer的部署和项目使用将之后介绍。顺便期待下一个版本SQL Window的功能。

^^

Posted in BigData, Java|Scala, Spark.