在https://issues.apache.org/jira/browse/SPARK-3644里面首先被提出,已经在
/api/v1。比如,对于历史服务器来说,我们可以通过http://:18080/api/v1来获取一些信息;对于正在运行的Spark应用程序,我们可以通过:4040/api/v1来获取一些信息。
如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop
下面是目前Spark支持的所有REST API: /applications:这个将显示所有的应用程序;
/applications/[app-id]/jobs:获取给定应用程序的所有Jobs;
/applications/[app-id]/jobs/[job-id]:获取给定Job的信息
/applications/[app-id]/stages:获取给定应用程序的所有stages;
/applications/[app-id]/stages/[stage-id]:获取给定stages的所有attempts ;
/applications/[app-id]/stages/[stage-id]/[stage-attempt-id]:获取给定stages attempts 的信息
/applications/[app-id]/stages/[stage-id]/[stage-attempt-id]/taskSummary:获取给定stage attempt中所有tasks的metrics信息
/applications/[app-id]/stages/[stage-id]/[stage-attempt-id]/taskList:获取给定stage attempt的所有tasks;
/applications/[app-id]/executors:获取给定应用程序的所有executors;
/applications/[app-id]/storage/rdd:获取给定应用程序的所有缓存的RDDs ;
/applications/[app-id]/storage/rdd/[rdd-id]:获取给定RDD的存储状态详情。
当应用程序运行在YARN模式,每个应用程序将有多个attempts,所以我们需要将上面所有[app-id]改成[app-id]/[attempt-id]。上面所有的URL都是有版本的,这样将使得开发者们很容易在上面开发应用程序。此外,Spark还提供以下保证:
1、任何一个版本的Endpoints都不会被移除;
2、单个字段将永远不会从任何的Endpoints中移除;
3、新的Endpoints可能被加入;
4、新的字段可能会被加入到某个Endpoints中;
5、新的版本可能会在未来加入到单独的Endpoint中(比如api/v2),而且新版本不要求向后兼容;
6、API的版本可能会被删除,但至少存在一个新的API版本。
需要注意的是,即使是想检查正在运行的应用程序UI是,我们也需要加入applications/[app-id]部分,即使是存在一个应用程序。比如如果你想获取所有正在运行的应用程序的作业列表,你可以通过http://:4040/api/v1/applications/[app-id]/jobs获取,这样做是为了在两种模式中保存一致的路径。
本文翻译自Spark官方文档。