yarn集群上完整spark作业生命周期管理

来源:互联网 发布:php 随机昵称生成器 编辑:程序博客网 时间:2024/06/08 23:51

前言:
spark的提交作业的原生态方式,使用spark-submit.sh脚本。使用此脚本有两个缺点:
1. spark支持提交到standalone、mesos、yarn上面。standalone和mesos是粗力度的资源调度器,yarn是细粒度。所以org.apache.spark.deploy.sparksubmit类只支持standalone和mesos的作业提交、停止、查询,并且提供了同一的接口。而yarn却只支持提交作业和监控作业,不能停止作业,所以平常提交作业到yarn以后,只能使用yarn application -kill ${appid}停止作业。对于服务是不完整。
2. spark-submit.sh运行时是单独在一个进程中,或者说一个jvm中,每次jvm初始化的时候就会向操作申请默认64m的内存,如果宿主机2G的内存,那么最多有28个进程并发,过多就会撑爆内存。

问题:服务端能够提供在yarn集群上完整spark作业生命周期的操作,并且高效和稳定。
功能列表:
1. 提交作业
2. 停止作业
3. 监控作业状态
4. 获取作业log信息

作业的调度可以是同步和异步的。
同步: 使用fifo或者fair调度策略。
异步: 不用关心,直接触发。

具体的代码稍后贴上