赞
踩
通常,我们可以通过Flink WebUI来查看和监控Flink任务的运行状态,如图
但如果我们要基于Flink自建一个实时计算平台,则不能依赖于Flink WebUI,而需要自己实现Flink任务状态的查看和监控了。
实际上,Flink有一套自己的监控REST API,Flink WebUI也是基于这套监控API实现的,我们可以通过调用集群地址+Flink监控API,来实现跟Flink WebUI一样的功能。
集群地址在上图中是http://hadoop-master:8088/proxy/applicationId
,常用的Flink监控REST API如下:
请求方法 | 接口 | 功能 | 参数 |
---|---|---|---|
GET | /jobmanager/config | 获取集群配置 | |
GET | /jobmanager/metrics | 获取JM的metrics | get:获取指定metric的值,有多个值时用逗号隔开 |
GET | /jobs | 获取所有任务id及其运行状态 | |
GET | /jobs/metrics | 获取所有任务的metrics | get:获取指定metric的值,有多个值时用逗号隔开;其他支持参数:agg、jobs |
GET | /jobs/overview | 获取所有任务的概况 | |
GET | /jobs/:jobid | 获取指定jobid的任务详情 | jobid(例如e0e129bfb8c68d6a774d493e2d8f0ada) |
GET | /jobs/:jobid/checkpoints | 获取指定jobid的检查点统计信息 | jobid |
GET | /jobs/:jobid/checkpoints/config | 获取指定jobid的检查点配置 | jobid |
GET | /jobs/:jobid/checkpoints/details/:checkpointid | 获取指定jobid和checkpointid的检查点详情 | jobid、checkpointid |
GET | /jobs/:jobid/config | 获取指定jobid的任务配置 | jobid |
GET | /jobs/:jobid/exceptions | 获取指定jobid的异常信息 | jobid、maxExceptions |
GET | /jobs/:jobid/metrics | 获取指定jobid的metrics | jobid |
GET | /jobs/:jobid/vertices/:vertexid | 获取指定jobid和vertexid的算子节点的信息 | jobid、vertexid(例如bc764cd8ddf7a0cff126f51c16239658) |
GET | /jobs/:jobid/vertices/:vertexid/backpressure | 获取指定jobid和vertexid的算子节点的反压情况 | jobid、vertexid |
GET | /jobs/:jobid/vertices/:vertexid/taskmanagers | 获取任务管理器汇总的任务信息 | jobid、vertexid |
GET | /overview | 获取集群概况 | |
GET | /taskmanagers | 获取所有TM的概况 | |
GET | /taskmanagers/metrics | 获取TM的metrics | get:获取指定metric的值,有多个值时用逗号隔开 |
GET | /taskmanagers/:taskmanagerid | 获取指定taskmanagerid的详情 | taskmanagerid(例如container_1600830023237_0002_01_000002) |
GET | /taskmanagers/:taskmanagerid/metrics | 获取指定taskmanagerid的metrics | taskmanagerid |
POST | /jobs/:jobid/stop | 停止指定jobid的任务,并保存一个savepoint | jobid、drain(默认false)、targetDirectory(savepoint存储位置) |
GET | /jobs/:jobid/yarn-cancel | 停止指定jobid的任务 | jobid |
踩坑:使用POST请求调用接口/jobs/:jobid/stop
时,报错405 HTTP method POST is not supported by this URL
原因:从http://hadoop-master:8088/proxy/application_1606890926991_0001/#/overview
的proxy
就可以看出,我们是通过Yarn的代理来访问Flink监控API的。这时候使用POST请求调用接口/jobs/:jobid/stop
,会出现302跳转,而302跳转的时候会更改请求方法,此时服务端可能不能识别,则报405错误。
解决:改用GET /jobs/:jobid/yarn-cancel
来停止Flink任务
更多Flink监控接口详见:
Flink监控REST API(官方文档)
Yarn RM REST API(Flink on Yarn使用)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。