logo好方法网

一种Spark应用监控方法、系统、设备和存储介质


技术摘要:
本发明实施例公开了一种Spark应用监控方法、系统、设备和存储介质。该Spark应用监控方法包括:在启动Spark应用时添加预先编写的智能监控代码至所述Spark应用;在所述Spark应用运行时根据所述智能监控代码监控所述Spark应用得到监控数据,以判断所述Spark应用是否出现异  全部
背景技术:
Spark是一种大数据实时离线计算框架,Hadoop是一个分布式系统基础架构, Spark是一种与Hadoop相似的开源集群计算环境,但是Spark启用了内存分布数据集,除了 能够提供交互式查询外,它还可以优化迭代工作负载。尽管创建Spark是为了支持分布式数 据集上的迭代作业,但是实际上它是对Hadoop的补充,可以在Hadoop文件系统中并行运行。 现有Spark应用监控方案主要是,通过定时轮训Hadoop  Yarn任务池的任务,再通 过设定的模板解析目标任务的状态,然后根据解析得到的状态判断是否需要重启,如果需 要重启则根据预置的启动命令模板拉起任务,必要时进行系统日志的记录和短信等渠道通 知。这样可以有效提高实时任务的高可用性和系统的健壮性以及任务相关的可维护性,提 高大数据处于过程的健壮性,最终避免任务因为失败而等待或者重复提交,提高大数据系 统资源的利用率。 但是这个方法有明显的缺点和不足,一是不能对Spark  Thrift  Server应用进行 有效的监控,因为Spark应用的任务是常驻在Hadoop  Yarn任务池中,不能简单地通过轮询 Hadoop  Yarn任务池来实现对Spark  Thrift  Server应用的监控;二是没有动态自愈的方 案,只是靠重启解决问题;三是没有异常日志的分析,不利于技术人员快速定位问题。
技术实现要素:
本发明实施例提供一种Spark应用监控方法、系统、设备和存储介质,以实现Spark 应用监控的智能化。 为达此目的,本发明实施例提供了一种Spark应用监控方法,该方法包括: 在启动Spark应用时添加预先编写的智能监控代码至所述Spark应用; 在所述Spark应用运行时根据所述智能监控代码监控所述Spark应用得到监控数 据,以判断所述Spark应用是否出现异常情况; 若所述Spark应用出现异常情况,则记录所述异常情况并将所述异常情况的异常 原因和解决方案通过邮件发送给预设账户。 进一步的,所述监控所述Spark应用得到监控数据,以判断所述Spark应用是否出 现异常情况包括: 监控所述Spark应用的阻塞延迟任务以得到所述阻塞延迟任务数量; 判断所述阻塞延迟任务数量是否大于第一阈值; 若所述阻塞延迟任务数量大于第一阈值,则所述Spark应用出现异常情况。 进一步的,所述监控所述Spark应用得到监控数据,以判断所述Spark应用是否出 现异常情况还包括: 4 CN 111581059 A 说 明 书 2/8 页 监控所述Spark应用的重点Spark源码段、Spark用户代码段和Spark监听器总线以 得到重点程序代码耗时; 判断所述重点程序代码耗时是否大于第二阈值; 若所述重点程序代码耗时大于第二阈值,则所述Spark应用出现异常情况。 进一步的,所述在启动Spark应用时添加预先编写的智能监控代码至所述Spark应 用包括: 判断是否需要开启智能监控; 若需要开启所述智能监控,在启动Spark应用时添加预先编写的智能监控代码至 所述Spark应用。 进一步的,所述判断是否需要开启智能监控之后包括: 若不需要开启所述智能监控,在所述Spark应用运行时轮询Hadoop  Yarn任务池以 判断所述Hadoop  Yarn任务池中是否存在所述Spark应用的任务进程; 若所述Hadoop  Yarn任务池中不存在所述任务进程,则记录当前的异常情况并将 所述异常情况的异常原因和解决方案通过邮件发送给预设账户。 进一步的,所述判断所述Hadoop  Yarn任务池中是否存在所述Spark应用的任务进 程之后包括: 若所述Hadoop  Yarn任务池中存在所述任务进程,判断所述任务进程是否为Spark  Thrift  Server应用的进程; 若所述任务进程为Spark  Thrift  Server应用的进程,按第一预设时间定时运行 SQL数据库,并判断所述SQL数据库的运行时间是否超过第三阈值; 若所述SQL数据库的运行时间超过第三阈值,则记录当前的异常情况并将所述异 常情况的异常原因和解决方案通过邮件发送给预设账户。 进一步的,所述若所述SQL数据库的运行时间超过第三阈值之后包括: 根据预先配置的自愈命令重新启动所述Spark  Thrift  Server应用。 一方面,本发明实施例还提供了一种Spark应用监控系统,该系统包括: 代码添加模块,用于在启动Spark应用时添加预先编写的智能监控代码至所述 Spark应用; 应用监控模块,用于在所述Spark应用运行时根据所述智能监控代码监控所述 Spark应用得到监控数据,以判断所述Spark应用是否出现异常情况; 邮件发送模块,用于若所述Spark应用出现异常情况,则记录所述异常情况并将所 述异常情况的异常原因和解决方案通过邮件发送给预设账户。 另一方面,本发明实施例还提供了一种Spark应用监控设备,该设备包括:一个或 多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多 个处理器执行,使得所述一个或多个处理器实现如本发明任一实施例提供的方法。 又一方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机 程序,该程序被处理器执行时实现如本发明任一实施例提供的方法。 本发明实施例通过在启动Spark应用时添加预先编写的智能监控代码至所述 Spark应用;在所述Spark应用运行时根据所述智能监控代码监控所述Spark应用得到监控 数据,以判断所述Spark应用是否出现异常情况;若所述Spark应用出现异常情况,则记录所 5 CN 111581059 A 说 明 书 3/8 页 述异常情况并将所述异常情况的异常原因和解决方案通过邮件发送给预设账户,解决了 Spark应用监控没有异常日志分析的问题,实现了Spark应用监控的智能化的效果。 附图说明 图1是本发明实施例一提供的一种Spark应用监控方法的流程示意图; 图2是本发明实施例二提供的一种Spark应用监控方法的流程示意图; 图3是本发明实施例三提供的一种Spark应用监控系统的结构示意图; 图4为本发明实施例四提供的一种Spark应用监控设备的结构示意图。
下载此资料需消耗2积分,
分享到:
收藏