如何通过Apache Flink REST API获取作业标准输出内容?
获取Flink作业标准输出(stdout)的REST API方式
Flink作业输出到标准输出的内容,默认会被捕获到TaskManager或JobManager的日志文件中,你可以通过以下REST API方式获取:
访问TaskManager日志
- 调用
/taskmanagers接口获取所有TaskManager的ID列表 - 针对目标TaskManager,调用
/taskmanagers/:taskmanagerid/logs获取该节点的日志文件列表(其中包含带有stdout标识的日志文件) - 调用
/taskmanagers/:taskmanagerid/logs/:logfilename接口下载对应stdout日志文件,从中提取作业输出内容
- 调用
访问JobManager日志
如果作业的部分stdout输出被定向到JobManager日志,可通过以下接口获取:- 调用
/jobmanager/logs获取JobManager的日志文件列表 - 调用
/jobmanager/logs/:logfilename下载对应日志文件并筛选stdout内容
- 调用
补充说明
- 作业的stdout内容会和节点的其他日志混存,需要根据日志中的标识(如
[stdout])来过滤提取 - 这类API只能获取已写入日志的历史输出,无法实时获取运行中作业的stdout流
- 作业的stdout内容会和节点的其他日志混存,需要根据日志中的标识(如
内容的提问来源于stack exchange,提问作者Abhinav
相关产品推荐
相关产品推荐

