kylin-kylin元数据监控之job运行超时报警
2020-02-17 本文已影响0人
李小李的路
- 基于kylin-3.0
背景
- 在kylin平台上,需要对kylin的job(批处理模式)运行时长进行监控,运行超过1h即发出钉钉报警;
- 原因:在kylin平台中,所使用的HBase的版本信息在2.x且在2.3版本下,在kylin merge时,会存在kylin写入极大量的小文件到hdfs,造成namenode压力很大甚至于崩溃; (此项为HBase-2.0 bug,issue: HFileOutputFormat2 split a lot of HFile by roll once per rowkey);
- 同时对运行时长超过一定阈值的任务进行跟进,避免使用方提交超大量任务;
数据源
- 采用java语言开发,读取HBase中kylin元数据的方式进行;
- 元数据路径: /execute 和 /execute_out 两个路径下的元数据信息;
- /execute 是对应kylin job的详细数据信息,和运行状态,(信息量很大、很全)
- /execute_out是对应kylin job页面的tasks项,对kylin job的tasks中的每一个步骤都会记录下来;
开发思路
- 第一步:从 /execute_out中读取 某个时间段下 task step状态为 running的。
- 第二步:拿到第一步的对应的uuid,再从 /execute中中读取对应的 uuid.json,获取job的信息;
- 第三步:判断此项job 任务提交时间到此刻,已经运行了多长时间,是否达到报警的阈值;
代码
- java语言开发,读取HBase的数据;
- 得空可以整理以下,开出来;