前段时间根据项目需求,要写一个Spark的执行器,要能满足远程提交获取状态等功能。
因为项目暂时使用的是Spark standalone 模式,考虑可以使用Spark自带的REST 服务(api地址:http://spark.apache.org/docs/latest/monitoring.html)来完成,后来在Github上发现了一个写的比较完善的库,地址https://github.com/ywilkof/spark-jobs-rest-client,几乎可以满足我所需的所有功能,而且调用也比较方便。
有需要的同学可以参考参考。
下面列出了所有的REST API:
/applications |
所有申请表。 ?status=[completed|running] 仅列出所选状态的应用程序。 ?minDate=[date] 最早的开始日期/时间列表。 ?maxDate=[date] 最新开始日期/时间列表。 ?minEndDate=[date] 最早的结束日期/时间列表。 ?maxEndDate=[date] 最新结束日期/时间列表。 ?limit=[limit] 限制列出的应用程序数量。 例子: ?minDate=2015-02-10 ?minDate=2015-02-03T16:42:40.000GMT ?maxDate=2015-02-11T20:41:30.000GMT ?minEndDate=2015-02-12 ?minEndDate=2015-02-12T09:15:10.000GMT ?maxEndDate=2015-02-14T16:30:45.000GMT ?limit=10 |
/applications/[app-id]/jobs |
给定应用程序的所有作业的列表。 仅列出处于该状态的作业。 |
/applications/[app-id]/jobs/[job-id] |
给定工作的详细信息。 |
/applications/[app-id]/stages |