flink历史服务

如题所述

第1个回答  2022-06-10
flink任务停止后,JobManager会将已经完成任务的统计信息进行存档,历史服务进程则在任务停止后可以对任务统计信息进行查询。比如:最后一次的checkpoint、任务运行时的相关配置。

默认启动端口8082:

查看/tmp/flink-web-history-7586c510-103f-4443-8252-59c56d86930e历史服务存储文件夹中的内容。

历史服务存储文件中,存储了用于页面展示的模板配置。历史任务信息存储在Jobs路径下,其中包含了已经完成的Job,每次启动都会从historyserver.archive.fs.dir拉取所有的任务元数据信息。

每个任务文件夹中包含我们需要获取的一些信息,通过restAPI获取时指标时,就是返回这些内容。

任务运行时,通过RestAPI将产生的checpoint路径存储到DB,以便根据路径续跑任务。当任务结束时,可能没办法及时从正在运行的任务中拉去最后一次checkpoint信息,此时需要从历史服务获取, http://historyIP:8082/jobs/jobid/checkpoints

线上任务停止后,根据存储在DB的checkpoint路径选择续跑,此时续跑失败。异常日志显示选择续跑的checkpoint文件不存在,查看DB和hdfs上存储的checkpoint信息,发现hdfs保存的最后一条checkpointID和DB存储的最后一条不一致。初步定位,最后一次获取checkpoint信息失败。

查看历史服务报错日志,是因为历史服务未能找到 hdfs://ns1/flink/completed 路径,导致获取数据失败。查看hdfs确实也没有该路径,最后定位没有配置jobmanager.archive.fs.dir参数。
相似回答