Spark JobserverApache Spark 的 REST 作业服务器
REST job server for Apache Spark
主要特点
- 通过Rest API 提交spark 作业运行,支持sql,java/scala,python类型作业,解耦业务系统与spark 集群。
- Spark Job 运行资源相互隔离以及高可用性,每一个job 独立运行在一个Spark driver中。
- 预启动 Spark Driver,提高Job 启动速度,Driver 共享运行多个Job(同时只有一个job运行)
- 支持多Yarn集群部署,Client 提交Job 到指定集群运行。
- Driver 定制化,可以实现比较多能力,例如:表权限,碎片文件压缩,DQC等功能。
- 支持作业实例任务依赖(DAG),
- 支持kerberos 认证
已经有kyuubi,livy,为什么开发jobserver?
几年前就开始中台产品工作, DataStudio需要有一个getway 提交作业,spark 往yarn 提交driver会比较慢,为了更好的交互体验,需要预先启动spark driver,类似jdbc connection 管理spark driver,同时需要解决资源隔离问题。那个时候还没有kyuubi。kyuubi目前支持sql,java/scala 任务开发中,缺少python任务能力。工作中遇到大部分任务是python 作业,spark 最开始定位面向AI人员工具,pyspark是最大优势。livy主要为了交互式场景,需要客户端管理sesssionId。spark thrift 没有资源离,一个作业可能就会把所有资源用完,导致其它用户无法使用。
评论