Flink REST API接口介绍
Flink具有可用于查询正在运行的作业的状态和统计信息以及最近完成作业的监视API。该监视API由Flink自己的WEB UI使用。
监视API是REST API,可接受HTTP GET请求并使用JSON数据进行响应。REST API是访问Web服务器的一套API。当前在Flink中,Web服务器是JobManager的一个模块,和JobManager共进程。默认情况下,web服务器监测的端口是8081,用户可以在配置文件“flink-conf.yaml”中配置“jobmanager.web.port”来修改监测端口。
使用Netty和Netty路由器库来处理REST请求和解析URL。
REST API接口的执行方式是通过HTTP请求进行。
HTTP请求的格式为:http://<JobManager_IP>:<JobManager_Port><Path>,
其中JobManager_IP是指JobManager进程所在服务器节点的IP地址,JobManager_Port是指JobManager进程的监测端口,Path为路径的部分,参见表1。例如:http://10.162.181.57:32261/config。
需要修改Flink Client的配置文件“flink-conf.yaml”,在“jobmanager.web.allow-access-address”和“jobmanager.web.access-control-allow-origin”中添加访问主机的IP地址,可使用逗号分隔。
Flink支持的所有REST API的URL中的Path信息如表1所示。
Path |
说明 |
---|---|
/config |
有关监控API和服务器设置的一些信息。 |
/logout |
注销的重要信息。 |
/overview |
Flink集群状态的简单概要。 |
/jobs |
Job的ID,按运行,完成,失败和取消等状态进行分组。 |
/jobmanager/config |
JobManager的配置。 |
/joboverview |
业务按状态进行分组,每个业务组都有一个小状态。 |
/joboverview/running |
与“/ joboverview”相同,Job按状态进行分组,每个Job组都有一个小状态,但只包含当前运行的Job。 |
/joboverview/completed |
Job按状态进行分组,每个都有一个小状态的摘要。 与“/ joboverview”相同,但仅包含已完成,已取消或失败的Job。 |
/jobs/<jobid> |
一个Job主要信息包含列出数据流计划,状态,状态转换的时间戳,每个顶点(运算符)的聚合信息。 |
/jobs/<jobid>/vertices |
目前与“/jobs/<jobid>”相同。 |
/jobs/<jobid>/config |
Job使用用户定义的执行配置。 |
/jobs/<jobid>/exceptions |
Job探察到不可恢复的异常。截取的标识提示是否存在更多异常,但不列出这些异常,否则回复会太大。 |
/jobs/<jobid>/accumulators |
聚合用户累加器加上Job累加器。 |
/jobs/<jobid>/checkpoints |
Job的checkpoint的统计信息。 |
/jobs/<jobid>/metrics |
一个Job的所有可用指标。 |
/jobs/<jobid>/vertices/<vertexid> |
关于流图的顶点下每个子任务的信息。 |
/jobs/<jobid>/vertices/<vertexid>/subtasktimes |
请求返回流图的顶点的所有子任务状态转换的时间戳。 这些可以用于在子任务之间创建时间线的比较。 |
/jobs/<jobid>/vertices/<vertexid>/taskmanagers |
一个流图顶点的TaskManager统计信息。 这是“/ jobs / <jobid> / vertices / <vertexid>”返回的子任务统计信息的聚合。 |
/jobs/<jobid>/vertices/<vertexid>/accumulators |
聚合的用户定义的累加器,用于流图顶点。 |
/jobs/<jobid>/vertices/<vertexid>/checkpoints |
单个Job顶点的检查点统计信息。 |
/jobs/<jobid>/vertices/<vertexid>/backpressure |
单个Job顶点的背压统计数据及其所有子任务。 |
/jobs/<jobid>/vertices/<vertexid>/metrics |
一组指标值的给定任务。 |
/jobs/<jobid>/vertices/<vertexid>/subtasks/accumulators |
获取流图顶点的所有子任务的所有用户定义的累加器。 这些是通过请求“/ jobs / <jobid> / vertices / <vertexid> / accumulators”以聚合形式返回的各个累加器。 |
/jobs/<jobid>/vertices/<vertexid>/subtasks/<subtasknum> |
特定子任务的当前或最近执行尝试的摘要。 |
/jobs/<jobid>/vertices/<vertexid>/subtasks/<subtasknum>/attempts/<attempt> |
特定子任务的具体执行尝试的摘要。 发生故障/恢复时会发生多次执行尝试。 |
/jobs/<jobid>/vertices/<vertexid>/subtasks/<subtasknum>/attempts/<attempt>/accumulators |
在一次特定的执行尝试期间,为一个特定子任务收集累加器(在发生故障/恢复时会发生多次尝试)。 |
/jobs/<jobid>/plan |
Job的数据流计划。 该计划也包括在Job摘要(“/ jobs / <jobid>”)中。 |
/taskmanagers |
任务管理员信息。 |
/taskmanagers/<taskmanagerid>/metrics |
任务管理员的度量信息。 |
/taskmanagers/<taskmanagerid>/log |
任务管理员的日志信息。 |
/taskmanagers/<taskmanagerid>/stdout |
一个任务管理员的标准。 |
/jobmanager/log |
JobManager的日志信息。 |
/jobmanager/stdout |
JobManager的标准。 |
/jobmanager/metrics |
JobManager的指标。 |
/:* |
对Web前端的静态文件(如HTML,CSS或JS文件)的请求。 |