美文网首页
flink历史服务

flink历史服务

作者: todd5167 | 来源:发表于2019-08-07 23:33 被阅读0次

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

    配置相关
    • jobmanager.archive.fs.dir:JobManager任务存档目录。任务结束后,会将统计信息写到该目录下,例如:hdfs://ns1/flink/completed-jobs。配置后,flink会自动创建completed-jobs目录。
    • historyserver.archive.fs.dir:history查询的completed-job的目录。必须与jobmanager.archive.fs.dir绑定的路径一致。
    • historyserver.archive.fs.refresh-interval:history获取数据的间隔。
    • historyserver.web.tmpdir:历史进程存储已结束job信息的本地存储路径。默认路径为
      System.getProperty("java.io.tmpdir") + File.separator + "flink-web-history-" + UUID.randomUUID(),linux系统临时目录为/tmp。

    默认启动端口8082:

    bin/historyserver.sh (start|start-foreground|stop)
    
    历史服务存储内容

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


    历史服务根目录

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


    jobs包含的任务

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


    job存储的元数据信息
    使用场景

    任务运行时,通过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参数。

    相关文章

      网友评论

          本文标题:flink历史服务

          本文链接:https://www.haomeiwen.com/subject/ietblctx.html