Flink任务监控实现——EMRFlink-YarnSessionDeploy

使用Flink Metric Reporter 对flink任务指标进行监控 从flink1.8版本开始,reporter支持了将指标数据写入influxdb,用户可以自研可视化系统读取influxdb中的数据进行可视化。 但是对中小型公司来讲,可能因为成本原因,大多并不会选择自研可视化,我们选择grafana进行flink metrics的可视化。 本文主要重点讲述influxdb、prometheus为Reporter,将flink的metrics数据写入外部系统,并使用grafana进行可视化。 安装配置方式手把手教学,如下: 1. influxdb 1.1 启动 docker 阅读详情

架构图:

 

注释:


所有的EMRFlink任务监控开发及上线(包括WAFStreamDW)    DONE(2023年02月28日)
    1. 开发
    2. 日志格式定义
    2. 告警配置
    问题:若获取session及job状态失败,格式与正常的不同
        1. session running && job failed时,job为errors-json串,无法获取job-name及job-status信息
        解决:代码中处理+SQL中处理status为null的情况,以便告警使用
        2. session failed && job failed时,session状态可获取,但获取其下job状态时会以xml格式返回Content has moved
        解决:代码中人为设定job的name及status

Shell jq使用:

添加key-value: 
    cat json1.json | jq '.key="value"'
更新key-value:
    cat json1.json | jq '.key="value2"'
添加key-动态value: 
    xargs=auto-value
    cat json1.json | jq --arg foo ${xargs} '.key=$foo'
将格式化的json扁平化输出到文件:
   cat json1.json | jq -c > target.json

获取某个YarnSession的运行状态的命令:

echo $(curl -s http://192.168.0.1:8088/ws/v1/cluster/apps/application_123456_0246) | jq -r '.app.state'

获取某个FlinkJob的运行状态的命令:

curl -s http://192.168.0.1:8088/proxy/application_123456_0246/jobs/4b3bcb1babcdef4ebd577efd48cbfa07

汇总脚本:

# log json to target dir (/mnt/disk1/log/flink-jobs)

# to well logtailed by SLS

# LISTS=($(cat /home/hadoop/flink_job_list.txt))

cp ossref://oss-file-tools/EMR_Project/EMRAlert/flink_job_list.txt /home/hadoop/

LISTS=($(cat /home/hadoop/flink_job_list.txt))

for i in $( seq 0 $((${#LISTS[*]} - 1)) ); 

do

    string=${LISTS[i]};

    array=(${string//,/ });

    # if yarn session is FAILED, get flink job FAILED too.

    echo $(curl -s http://192.168.0.1:8088/ws/v1/cluster/apps/${array[0]}) | jq -r '.app.state' > /mnt/disk1/log/flink-jobs/$year/tmp_session.state

    # yarn session tmp file

    echo $(curl -s http://192.168.0.1:8088/ws/v1/cluster/apps/${array[0]}) | jq '.emr_cluster_id="C-95927ABC297E8648"' | jq '.emr_cluster_name="oss-prod-emr-flink"' | jq -c > /mnt/disk1/log/flink-jobs/$year/tmp_session.json;

    # flink job tmp file

    if [ "FAILED" = $(cat /mnt/disk1/log/flink-jobs/$year/tmp_session.state) ]; then

        echo '{"state":"FAILED"}' | jq '.emr_cluster_id="C-95927ABC297E8648"' | jq '.emr_cluster_name="oss-prod-emr-flink"' | jq --arg foo ${array[0]} '.yarn_session=$foo' | jq --arg foo ${array[1]} '.jid=$foo' | jq --arg foo ${array[2]} '.jname=$foo' | jq -c > /mnt/disk1/log/flink-jobs/$year/tmp_job.json;

    else

        echo $(curl -s http://192.168.0.1:8088/proxy/${array[0]}/jobs/${array[1]}) | jq '.emr_cluster_id="C-95927ABC297E8648"' | jq '.emr_cluster_name="oss-prod-emr-flink"' | jq --arg foo ${array[0]} '.yarn_session=$foo' | jq --arg foo ${array[2]} '.jname=$foo' | jq -c > /mnt/disk1/log/flink-jobs/$year/tmp_job.json; 

    fi

    # flink job detail got

    jq -s '.[0] * .[1]' /mnt/disk1/log/flink-jobs/$year/tmp_job.json /mnt/disk1/log/flink-jobs/$year/tmp_session.json | jq -c >> /mnt/disk1/log/flink-jobs/$year/flink_job_$day.log;

done

任务上传至EMR并对自身告警(注:添加了emr_cluster_id及emr_cluster_name)

WorkFlow:
    FlinkClusterLogCollection
    monitor running status of yarn session & flink job per 5 minutes    

Job: 
    FlinkClusterLogCollection

LOG示例:

SessionRunning&JobRunning:
略

SessionRunning&JobFailed:
略

SessionFailed&JobFailed:
略

基于SLS的Flink任务监控告警设置:


EMRFlinkJobMonitor_YarnSessionAlert
* | select json_extract_scalar(app, '$.name') as session_name, json_extract_scalar(app, '$.state') as session_state, jname, if(state is null,'JobNotFound',state) as jstate
分组:session_name
有数据匹配:session_state != 'RUNNING'
Title:【Reminder]】FlinkYarnSession: ${session_name}目前状态是${session_state}!!!请处理!!!
Content:FlinkYarnSession: ${session_name}目前状态是${session_state}!!!请处理!!!
行动策略:EMRFlinkJobMonitor

EMRFlinkJobMonitor_FlinkJobAlert
* | select json_extract_scalar(app, '$.name') as session_name, json_extract_scalar(app, '$.state') as session_state, jname, if(state is null,'JobNotFound',state) as jstate
分组:jname
有数据匹配:jstate != 'RUNNING'
Title:【Reminder]】FlinkYarnSession: ${session_name}中的FlinkJob: ${jname}目前状态是${jstate}!!!请处理!!!
Content:FlinkYarnSession: ${session_name}中的FlinkJob: ${jname}目前状态是${jstate}!!!请处理!!!
行动策略:EMRFlinkJobMonitor

YarnSessionAlertConfig:

FlinkJobAlertConfig:

 

 

更新时间:2023年02月28日16:41:29

Flink on yarn程序监控自动重启脚本 flink on yarn 程序监控自启脚本 阅读详情

相关推荐

Flink(Pometheus监控)

Flink(Pometheus监控)

S1124654的博客 3830

八种Flink任务监控告警方式

Flink任务告警方式的选择,要从任务的使用情况和期盼来考量;简单的使用,且任务少,可以用监控目标数据库的数据写入情况、per-job和application运行任务探活、Sesion运行方式通过RestApi来告警;特定场景的业务可以靠监控存储中间偏移量来告警;通用大规模应用场景可以通过采集运行时日志、使用调度平台,使用调度平台、引入开源SDK方式、自定义SDK写入通用系统通用系统里方式选择。

weixin_42049123的博客 6838

23.flink processFunction(高级报警功能必会)

flink的processFunction是实现高级功能的重要模块,所以flink也是单独列出了一节来讲解,不仅如此市面上的flink开发的书籍基本上也是会把processFunction单独列出一个小节来讲解。另外理解本小节的代码,需要读者理解状态,以及flink三种时间:event time,ingestion time,processing time.下面的例子用的是process time. 本节内容不适合新手小白,适合对flink有一定了解以及有一定编程经验的人。}}}}

笔生花的博客 1396

Flink——监控

Flink的web界面提供了一个选项卡来监视作业的检查点。这些统计数据在作业终止后也可用。有四个不同的选项卡显示关于检查点的信息:Overview, History, Summary, and Configuration。以下部分将依次介绍所有这些内容。概览选项卡列出了以下统计信息。请注意,这些统计数据不会在JobManager丢失后继续存在,并且在JobManager故障转移时将被重置为。检查点历史记录保存关于最近触发的检查点的统计信息,包括当前正在进行的检查点。 注意,对于失败的检查点,度量标准是在最佳

京河小蚁的博客 4573

【Flink】Flink 任务实时监控

1.概述 转载:Flink 任务实时监控最佳实践 我们都知道 Flink 任务是一个 7*24 小时不停运行的任务,所以对于任务的实时监控就显得尤为重要,因为任务运行的状态对于我们来说是一个黑盒,比如任务是否挂掉,是否存在反压,使用的内存,CPU 等情况我们是不知道的,虽然 Flink 的 UI 上面可以添加相关的 metrics 来查看,但是需要手动的一个一个添加,还是比较麻烦的,特别是在任务非常多的情况下.所以就需要有一种统一的监控方案来解决这个问题.Flink 本身提供了非常丰富的 Metric Re

九师兄 7046

Flink任务实时监控与大数据

通过对任务运行状态、数据输入输出、中间结果和错误日志的监控,我们可以及时发现问题、优化性能,并保证任务的稳定运行。当然,这只是一个简单的示例,实际应用中还可以根据需求进行更加复杂的监控和处理。本文将介绍如何使用Flink实现任务的实时监控,并展示相关的源代码。下面是一个简单的示例代码,用于演示如何使用Flink的API实现任务监控功能。通过学习和使用Flink进行任务实时监控,可以加深对流处理框架的理解,并提高大数据应用的效率和可靠性。基于上述需求分析,我们可以设计一个简单而实用的Flink任务监控方案。

CodeHeroicX的博客 975

Flink作业部署与监控

1.背景介绍 Flink是一种流处理框架,它可以处理大规模数据流,实现实时数据处理和分析。Flink作业是Flink框架中的基本单位,它包含了一系列的数据处理任务和操作。在实际应用中,Flink作业需要进行部署和监控,以确保其正常运行和高效执行。 Flink作业的部署和监控是一个复杂的过程,涉及到多个方面,如资源管理、任务调度、故障检测、性能监控等。在本文中,我们将详细介绍Flink作业的部署...

AI天才研究院 1626

Flink大数据系统监控指标及其实现方法

对于部署在生产环境中的Flink应用程序而言,及时监控系统的关键指标是确保稳定性和性能的重要手段。本文将介绍Flink系统监控指标的种类和意义,并给出了常见指标的实现示例。本文介绍了Flink系统监控指标的分类和意义,并给出了常见指标的实现示例。通过监控系统的关键指标,可以及时发现和解决问题,提高Flink应用程序的稳定性和性能。上述示例代码通过使用Flink的Metric API,实现了输入输出速率的监控(Meter指标),以及处理延迟的监控(Histogram指标)。二、Flink系统监控指标的分类。

2301_79366435的博客 638

Flink系列--Flink监控告警初探

Flink系列--Flink监控告警初探

似水_逆行的博客 1943

Flink任务实时监控:大数据流处理的可视化展示

然而,为了确保任务的顺利运行和监控,我们需要实时监控Flink任务的状态、性能指标和数据流。本文将介绍如何使用Flink的监控功能和一些可视化工具来实现任务的实时监控。此外,Flink还支持将监控信息导出到外部系统,如InfluxDB、Prometheus等,以便进行更复杂的监控和分析。通过Zeppelin的Flink插件,我们可以创建一个交互式的数据流拓扑图。我们可以使用Grafana的模板来创建Flink的监控Dashboard,或者根据自己的需求进行定制。如有ink任务的实时监控和可视化展示。

ByteHackerX的博客 1077

10分钟快速搭建OpenClaw(基于Windows+飞书)

OpenClaw 是一款功能强大的 AI 智能体工具,能够帮助用户管理邮件、日历等日常事务。本文详细介绍了在 Windows11 系统上安装和配置 OpenClaw 的完整步骤,包括 Node.js 环境搭建、Git 安装、OpenClaw 部署以及飞书机器人创建与对接。通过简单的命令行操作和可视化界面配置,用户可以快速完成 AI 助手部署,实现智能办公自动化。文中还提供了飞书机器人权限设置等关键环节的图文指引,帮助用户轻松完成系统集成。

Hello, New World! 2925

Prometheus+Grafana系统部署,linux、flink的监控与告警

目录版本一、简介PrometheusGrafana二、安装Prometheus1 下载包2 修改配置3 配置使用Systemd管理Prometheus4 启动Prometheus三、安装node_exporter1 下载包2 修改配置3 配置使用Systemd管理node_exporter4 启动Prometheus四、安装Grafana1 添加repo2 安装3 启动4 设置开机启动 版本 Centos 7.6 Prometheus 2.31.1 Grafana //todo node_exporter

终回首的博客 6868

Verilog实战:手把手教你实现四路组相联Cache(附完整代码解析)

本文提供了一份详细的Verilog实战指南,手把手教你实现一个四路组相联Cache。内容涵盖从设计规格、核心存储阵列、LRU替换策略到状态机设计的完整流程,并附有代码解析与优化技巧,旨在帮助硬件设计者掌握Cache控制器的RTL实现与调试方法。

pp12345的博客 516

Flink生产实时监控和预警配置解析

在实际的Flink 项目中,如何观察Flink的性能,如何监控Flink的运行状态,如何设置报警策略?下面简单讲下我的经验吧。 一、Flink webUI 首先聊下Flink webUI。如下图所示: 如果是本地调试模式,默认是不开启webui的。 StreamExecutionEnvironmentenv=StreamExecutionEnvironment.getExecutionEnvironment(); 上面的初始化方式,本地调试默认不开启webui。 StreamEx...

m0_61607827的博客 3464

Google账号找回通用方法(尤其是知道账号密码仍无法登录和找回的)

Google账号找回通用方法【尤其是知道账号密码仍无法登录和找回的】普通找回注意:适用于常用谷歌账户的设备和网络情况下无法使用手机或辅助邮箱验证码进行密码找回特殊找回方法注意;适用于1.新的设备以及网络环境(包括由于非正常原因导致设备系统以及应用信息变更)2.没有开启辅助验证(手机/邮箱)3.知道账号密码但无法登录或找回。通过申诉进行找回 普通找回 注意:适用于 常用谷歌账户的设备和网络情况下 无法使用手机或辅助邮箱验证码进行密码找回 通过恢复页面进行恢复 https://accounts.google

极客代码-极致生活 23万+

【AWS】创建aws云服务器EC2实例

本文介绍了如何创建aws的EC2云服务器,并介绍了如何使用Xshell远程连接上云服务器

Marcos921的博客 2501

利用Flink(1.17)滚动窗口实时统计Apache Doris审计日志

统计每30S内各用户访问数仓的频次,同时过滤出慢查询,将慢查询单独输出,用于后期分析

weixin_43914798的博客 1398

从零搭建智能车竞赛卡丁车:自动驾驶科目中的锥桶识别与路径规划实战教程

本文提供了一份从零搭建智能车竞赛卡丁车的实战教程,重点解析了自动驾驶科目中的核心环节:锥桶识别与路径规划。内容涵盖硬件选型、传感器部署、基于单目视觉的识别算法,以及适用于嵌入式平台的轻量级路径规划与跟踪策略,旨在帮助参赛者与爱好者系统掌握关键技术,完成稳定可靠的自动驾驶系统搭建。

lg888的博客 1166

FlinkOnYarn 监控 flink任务(RestAPI)

通俗的说就是一个能够接受json,处理json,输出json的程序,反正很好用。获取线运行job任务,记录到日志文件。这里shell脚本也只记录,flink-on-yarn 这种部署方式任务监控。只需要监控实时yarn 任务有没有处于RUNNING,达到监控的目的。Flink任务一般为实时不断运行的任务,如果没有任务监控,Flink任务监控(基于API接口编写shell脚本)这里通过调用API接口方式来获取参数,实现任务监控。shell脚本水平有限,大家多多谅解,欢迎指导。获取这个任务单个信息。

m0_57320261的博客 2142

科研绘图系列:基因突变瀑布图统计以及可视化

科研绘图系列:基因突变瀑布图统计以及可视化

专注生信领域 1653

6.4 实战项目:基于Agent内核构建Code Review智能体

本文介绍了一个基于Agent内核构建的智能Code Review系统实战项目。系统采用多Agent协作架构,包含代码质量分析、安全漏洞识别、性能优化建议等核心功能模块。文章详细展示了系统架构设计,采用协调器Agent管理多个专业Agent协同工作,并提供了基础Agent框架和协调器Agent的TypeScript实现代码。项目结合了AI Agent核心原理和多Agent协作机制,实现了自动化的代码审查流程,能够生成详细的审查报告,帮助开发者提升代码质量和安全性。

yonggeit的博客 3109

使用 Apache Flink 在 Amazon EMR 上构建统一数据湖

为了建立数据驱动型企业,在数据目录中实现企业数据资产的大众化非常重要。利用统一的数据目录,您可以快速搜索数据集,并确定数据架构、数据格式和位置。Amazon Glue Data Catalog提供了一个统一的存储库,让不同的系统能够存储和查找元数据,以跟踪数据孤岛中的数据。Apache Flink是一个应用广泛的数据处理引擎,适用于可扩展的流式处理 ETL、分析和事件驱动型应用程序。该应用程序...

亚马逊云科技专栏 653

基于Cesium实现,动态水面+大坝排水动画

一、绘制面状水域,使用水波纹理,进行渲染,水体透明,可以看到底色。三、使用粒子系统,将喷泉改变方向,加上重力设置,实现排水动画。二、绘制线状三维体,用作模拟大坝拦截效果。四、最后,模拟水位上升,进行淹没分析,

一醉千秋的专栏 1420

轻松通关Flink第18讲:如何进行生产环境作业监控

这一课时我们讲解了 Flink Metrics 指标的分类,并且从源码层面介绍了 Flink Metrics 的实现原理,最后还讲解了 Flink 监控这个 Metrics 的方式。我们在实际生产中应该灵活选取合适的监控方法,搭建自己的 Flink 任务监控大盘。点击这里下载本课程源码。

sucaiwa的博客 961

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

flink任务监控- 利用Grafana和Prometheus实现实时计算平台任务监控

简介 最近负责公司基于flink实时计算平台的基本任务监控,包括重启通知,失败监控,一些关于flink 在pushgateway 上exported_job信息上报便于最后删除 pushgateway上的信息避免重复告警等,其实开始想的也是在网上找,没有找到,现在就总结一下自己的做法。第一次写博文不合理之处大家多多理解。 修改flink的flink-conf.yaml配置文件 具体配置讲解网上很多不赘述了 metrics.reporter.promgateway.class: org.apache.fli

baidu_29559021的博客 6693

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【FLink-17-Flink监控metric】

FLink-17-Flink监控metric

weixin_38136584的博客 1107

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: HMaster组件异常导致Flink写HBase任务频繁重启问题解决
下一篇: 数据同步工具的研究(实时)
csdn_lan
博客等级 码龄11年 7粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值