一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

面向分布式图迭代计算作业的日志管理系统、方法及介质与流程

2021-10-24 07:30:00 来源:中国专利 TAG:方法 管理系统 作业 日志 数据处理


1.本发明属于数据处理技术领域,涉及日志管理方法,特别涉及面向分布式图迭代计算作业的日志管理系统、方法及介质。


背景技术:

2.分布式图迭代计算系统采用主从式(master

slave)架构,如图1,作业被分割为若干任务并由集群中的多台机器共同完成,其中一台机器被选为主控节点master而其余为工作节点slave。每个工作节点定期向主控节点汇报自己所负责数据的处理进度,主控节点汇总后向用户展示整个作业的处理进度。这种定期汇报机制,通常被称为“心跳”机制,可用来完成主从式架构下的管理与监控功能。
3.由于分布式大图计算平台良好的封装性,用户无法像单机编程环境下使用单步调试以及变量值监控等工具分析自己所提交的作业程序的运行过程。此外,分布式平台跨机器网络通信连接的不稳定性和多线程并发计算结果的不确定性,加剧了图迭代计算作业的调试难度。
4.目前,分布式程序的主要调试手段是在运行程序时打印日志信息,然而分布式系统日志分布在各个工作节点上,且图计算过程中的每个迭代步可能都需要查看对应信息以及时分析程序运行正确性,致使调试过程需要对多个节点的日志频繁进行查看。跨节点日志检索的复杂性和不同迭代步之间相关日志文件中的冗余信息,降低了debug效率。其次,由于图算法通常沿着出边访问顶点,分布于不同工作节点的子图之间存在强耦合性,一台工作节点发生异常,会出现多台物理机上的日志中均出现异常报错的情况,此时多节点报错会对“首个异常报错”的判定产生一定的干扰,即不能快速定位异常机器并对故障进行溯源。
5.分布式系统故障溯源主要分为基于规则的故障溯源方法和基于建模的故障溯源方法,两者均需要通过分析系统长时间的运行日志信息来提取相关知识,以建立规则或模型。目前主流的分布式计算平台的日志管理很少有专门适用于图计算系统的,更没有专门针对图计算作业的日志管理系统。现有的方法只能适用普通的分布式系统,若对分布式图计算系统进行日志存储,存在着欠缺和问题:图计算系统发生错误时,只需对当前的单个作业分布在集群中的日志记录进行查看,寻找错误,排除错误后即可删除日志,不需要对其存储。对所有日志进行存储需要一定的内存空间,日志收集过程也造成了一定的通信开销。此外,图算法作业与其他分布式作业不同的是,图算法需要多次迭代计算,每个迭代都会产生一些信息,当进行调试时,需要在迭代过程中查看实时输出的日志信息,那么存储日志再查看自然而然就行不通了,而且需要多次查看,若每次收集都是传输此次作业的全部日志信息,就存在着日志冗余传输。
6.综上,现有的分布式图计算系统,本身又只提供简单的日志记录功能,不支持故障溯源和在程序调试过程中的日志管理功能。在分布式系统故障溯源问题中,现有的技术需要以往大量的故障数据积累,通过对这些数据建模来对异常进行识别,这些方法存在对先
验知识依赖严重的问题。因此,本发明针对分布式图迭代计算系统下的程序调试效率低下问题,为分布式图迭代计算作业提供日志管理方法,单次作业独立性较强,没有大量的数据,不需建模。


技术实现要素:

7.针对现有技术存在的不足,本发明提供一种面向分布式图迭代计算作业的日志管理系统、方法及介质,从故障溯源与日志检索两个角度,提出了解决方案,首先在对故障溯源,不需要建模或者约定规则,只需要根据日志的更新状态来判定异常根源出自哪里;在故障溯源之后,程序进行调试中对日志分析进行优化,在各个工作节点上对日志进行检索,检索后将所需要的内容发送至master,部分无用内容不发送,节省大量的发送时间,使用户在确定故障源头所在节点之后,能够快速跟踪分析程序运行细节,完成程序调试。
8.为了解决上述技术问题,本发明采用的技术方案是:
9.首先,本发明提供一种面向分布式图迭代计算作业的日志管理方法,在分布式图迭代计算作业开始后,由master协调各节点加载图数据到本地并开始计算,通过以下方法实现日志管理:
10.(1)首先,利用基于统一时间度量标准的日志增量变化分析溯源方法对故障溯源:通过主从节点之间的“心跳”机制持续监控各个节点的日志增量变化情况,以主控节点的时间为基准,判定各个节点日志停止更新的次序,进而给出候选的故障源节点;
11.(2)故障溯源后,程序进行调试中对日志分析进行优化,通过迁移并分布式执行检索命令,收集关键日志信息进行调试;
12.其中,在分布式图迭代计算时,通过增量检索方法实时查看迭代步信息。
13.进一步的,步骤(1)中基于统一时间度量标准的日志增量变化分析溯源方法的具体操作步骤如下:
14.step1.首先利用在各工作节点上的图计算系统中n毫秒的定期汇报机制,对各节点的日志记录更新状态进行收集汇报;
15.step2.当每隔一个“心跳”,各节点对本地当前的日志量与上一个“心跳”结束时的日志量进行一个比较,求出一个增量变化值δ
log
,并将δ
log
汇报给master;
16.step3.判断是否发生异常,当本次图计算作业发生异常时,首先查看master记录的δ
log
,若工作节点i汇报的则认为工作节点i发生故障;若没有发现则调小“心跳”间隔n,增大故障溯源灵敏度,再次运行作业,直到捕获到故障根源的日志不再更新。
17.进一步的,步骤(2)中,所述迁移并分布式执行检索命令指的是,当分布式图迭代计算系统进行程序调试时,采用各节点先在本地检索,再将检索后的关键日志信息传送给master的方法,具体如下:
18.从主机master发送搜索命令给slave工作节点,各slave收到命令后根据命令,在本地对日志进行检索,各节点分布式的运行检索命令;
19.将部分关键的日志信息进行回传,最后在master上进行结果呈现。
20.进一步的,步骤(2)中,所述通过增量检索的方法查看迭代步信息指的是:对于一次作业,当首次对迭代步n的信息进行查看时,直接对所需要的迭代步n信息进行输出,然后设置整形变量outiteration为n,用于记录已经将迭代步n的信息输出;若下次需要对迭代
步m的信息输出,首先查看m是否大于n,当m>n,只将迭代步n 1至m的日志信息输出,再将outiteration置为m,当m<n,提示已经输出,查看迭代步n的日志信息。
21.本发明还提供一种面向分布式图迭代计算作业的日志管理系统,用于管理日志,包括:
22.日志增量变化分析溯源模块,用于故障溯源,通过主从节点之间的“心跳”机制持续监控各个节点的日志增量变化情况,以主控节点的时间为基准,判定各个节点日志停止更新的次序,进而给出候选的故障源节点;
23.分布式迁移检索模块,用于故障溯源后,程序进行调试中对日志分析进行优化,通过迁移并分布式执行检索命令,收集关键日志信息进行调试;
24.增量检索模块,用于分布式图迭代计算时,通过增量检索命令实时查看迭代步信息。
25.本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述的面向分布式图迭代计算作业的日志管理方法。
26.与现有技术相比,本发明优点在于:
27.(1)针对强耦合关联背景下多节点报错时真实故障所在节点的溯源难问题,本发明提出基于统一时间度量标准的日志增量变化分析溯源方法,利用故障发生后节点本地日志不再更新的特点,通过主从节点之间的“心跳”机制持续监控各个节点的日志增量变化情况,以主控节点的时间为基准,判定各个节点日志停止更新的次序,进而给出候选的故障源节点。
28.不需要建模或者约定规则,只需要根据日志的更新状态来判定异常根源出自哪里。
29.(2)针对跨节点频繁日志检索效率低问题,本发明提出基于分布式增量检索的数据删冗方法,通过迁移并分布式执行检索命令来代替日志搜集,在各个工作节点上对日志进行检索,检索后将所需要的内容发送至master,部分无用内容不发送,节省大量的发送时间,减少冗余信息的网络传递开销,通过分布式执行检索命令来提高检索效率,使用户在确定故障源头所在节点之后,能够快速跟踪分析程序运行细节,完成程序调试。
30.(3)在分布式图迭代计算时,通过增量检索方法实时查看迭代步信息,来避免不同迭代步之间的日志信息重复扫描。
附图说明
31.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
32.图1为现有技术的分布式图迭代计算系统架构图;
33.图2为本发明日志记录更新并汇报示意图;
34.图3为本发明与现有技术两种日志传输策略对比图;
35.图4为本发明面向分布式图迭代计算作业的日志管理方法流程图。
具体实施方式
36.下面结合附图及具体实施例对本发明作进一步的说明。
37.本实施例提供一种面向分布式图迭代计算作业的日志管理方法,在分布式图迭代计算作业开始后,由master协调各节点加载图数据到本地并开始计算,通过以下方法实现日志管理:
38.(1)首先,利用基于统一时间度量标准的日志增量变化分析溯源方法对故障溯源:利用故障发生后节点本地日志不再更新的特点,通过主从节点之间的“心跳”机制持续监控各个节点的日志增量变化情况,以主控节点的时间为基准,判定各个节点日志停止更新的次序,进而给出候选的故障源节点。
39.(2)故障溯源后,程序进行调试中对日志分析进行优化,通过迁移并分布式执行检索命令,来代替日志搜集,减少冗余信息的网络传递开销,收集关键日志信息进行调试,提高检索效率。
40.其中,在分布式图迭代计算时,通过增量检索方法实时查看迭代步信息,避免不同迭代步之间的日志信息重复扫描。
41.下面分别从故障溯源与日志检索两方面分别介绍:
42.一、基于统一时间度量标准的日志增量变化分析溯源方法
43.分布式图计算系统在计算过程中,各工作节点需要进行网络通信,一个发送工作节点的输出值往往是另外接收工作节点下一个迭代所需要的输入值,所以其他工作节点在工作节点i发生故障,无法收到所需要的输入值,自身也无法进行运算,所以后续迭代整个系统会发生连锁性的故障,从而造成计算任务的失败。当大面积的工作节点日志记录故障时,无法快速进行故障溯源。本发明利用系统的基于统一时间度量标准的日志增量变化分析溯源方法,认为最先汇报δ
log
异常的工作节点,通常是引发整个故障的起始工作节点。这样就可以快速定位故障根源。
44.核心要点是根据日志记录的更新状态,对当前作业的故障根源在哪里来做判定。当分布式图计算系统的任务进行时,每个工作节点都会根据任务的进行来不停地追加日志,当任务结束时日志也会随之停止更新,由此可知日志内容是随着计算任务地进行而增加,两者呈现一种正比关系。因此,本发明根据日志记录更新状态来判断异常,结合图2所示,具体操作步骤如下:
45.step1.首先利用在各工作节点上的图计算系统中n毫秒的定期汇报机制,即“心跳”,对各节点的日志记录更新状态进行收集汇报。目的是同时对各节点的日志记录更新状态进行收集汇报,达到无差别对待,不会出现节点少汇报、漏汇报的情况。
46.step2.当每隔一个“心跳”,各节点对本地当前的日志量与上一个“心跳”结束时的日志量进行一个比较,求出一个增量变化值δ
log
,并将δ
log
汇报给master。
47.step3.判断是否发生异常,当本次图计算作业发生异常时,首先查看master记录的δ
log
,若工作节点i汇报的与其他有很大差异则认为工作节点i发生故障;若没有发现则调小“心跳”间隔n,增大故障溯源灵敏度,再次运行作业,直到捕获到故障根源的日志不再更新。
48.其中,“心跳”间隔的大小,涉及溯源灵敏度和检测时间复杂度之间的均衡,需要根
据具体需求进行选择。
49.上述step3涉及到故障溯源灵敏度问题,当n设置过小时,会频繁的记录日志更新状况和向主控工作节点汇报,虽然能够提高故障溯源的准确率,但是会占用有限的计算资源以及加大通信代价。若n设置过大时,则准确率会降低。提供一个折中的方法,在日常计算的过程中,调大n值,降低资源消耗,若没有捕获到则可以调小n值,加大灵敏度再次进行作业计算,此时主要目的是进行故障溯源而不是作业计算,因此牺牲计算资源来换取故障溯源的准确度。
50.二、基于分布式增量检索的数据删冗方法
51.目前分布式图迭代计算系统在进行程序调试时,日志信息分布在各个计算节点上,需要跨节点操作,在不同工作节点上操作查看日志,存在操作重复问题,并且已有分布式日志管理系统不适用于分布式图计算作业,而分布式图计算系统自身只提供简单日志记录功能。另外,分布式图迭代计算系统,在一次作业计算时,需要多次查看迭代步输出信息,查看过迭代步n的信息之后,再查看迭代步n i时,依旧会输出迭代步n的信息,存在检索迭代步信息冗余问题。
52.本发明通过迁移并分布式执行检索命令和增量检索命令解决上述两个问题,具体如下:
53.1.迁移并分布式执行检索命令
54.图3左侧显示了已有的不能高效进行日志分析的日志传输方案,右侧为本发明所采用的高效方法,即当分布式图迭代计算系统进行程序调试时,为了避免在各个计算节点之间来回操作,采用各节点先在本地检索,再将检索后的关键日志信息传送给master的方法:从主机master发送搜索命令给slave工作节点,各slave收到命令后根据命令,在本地对日志进行检索,各节点分布式的运行检索命令,相较于master先汇集整个集群日志再逐个对各节点上的日志记录进行检索,大大提高了检索的效率。将部分关键的日志信息进行回传,最后在master上进行结果呈现。因为日志记录也包括一些无用信息,所以只传输关键日志,大大降低了通信损耗。
55.2.增量检索命令
56.避免迭代步信息冗余显示是把已输出的信息不再显示。对于一次作业,当首次对迭代步n的信息进行查看时,并不存在冗余输出,直接对所需要的迭代步n信息进行输出,然后设置整形变量outiteration为n,用于记录已经将迭代步n的信息输出;若下次需要对迭代步m的信息输出,首先查看m是否大于n,当m>n,只将迭代步n 1至m的日志信息输出,再将outiteration置为m,当m<n,提示已经输出,查看迭代步n的日志信息即可。
57.结合图4所示的流程图,在分布式图计算作业开始后,由master协调各节点加载图数据到本地并开始计算。各slave在经过一个“心跳”间隔后,各节点对本地当前的日志量与上一个“心跳”时的日志量进行一个比较,求出一个变化值δ
log
,并将δ
log
汇报给master。master记录下这些δ
log
,若作业出现异常时,通过对master记录δ
log
进行判断,若某工作节点最后一次汇报的δ
log
为0,则可判定其为故障根源。此部分为故障溯源技术。
58.若想在计算时查看迭代步信息,利用增量检索技术,降低日志信息冗余输出。
59.当系统出现异常,对日志进行查看进行程序调试时,利用迁移命令技术,收集关键日志信息进行调试。
60.作为本发明另一实施例,还提供一种面向分布式图迭代计算作业的日志管理系统,用于管理日志,包括:
61.日志增量变化分析溯源模块,用于故障溯源,通过主从节点之间的“心跳”机制持续监控各个节点的日志增量变化情况,以主控节点的时间为基准,判定各个节点日志停止更新的次序,进而给出候选的故障源节点;
62.分布式迁移检索模块,用于故障溯源后,程序进行调试中对日志分析进行优化,通过迁移并分布式执行检索命令,收集关键日志信息进行调试;
63.增量检索模块,用于分布式图迭代计算时,通过增量检索命令实时查看迭代步信息。
64.各模块的功能及实现方式同前所述面向分布式图迭代计算作业的日志管理方法,此处不再赘述。
65.作为本发明另一实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述的面向分布式图迭代计算作业的日志管理方法,此处不再赘述。
66.综上所述,本发明从故障溯源与日志检索两个角度,提出了解决方案,首先在对故障溯源,不需要建模或者约定规则,只需要根据日志的更新状态来判定异常根源出自哪里;在故障溯源之后,程序进行调试中对日志分析进行优化,在各个工作节点上对日志进行检索,检索后将所需要的内容发送至master,部分无用内容不发送,节省大量的发送时间,使用户在确定故障源头所在节点之后,能够快速跟踪分析程序运行细节,完成程序调试。
67.本发明说明书的各个实施例之间相同或相似部分互相参见即可,每个实施例重点说明的是与其他实施例不同之处。并且,系统实施例的结构仅仅是示意性的,其中所述可分离部件说明的程序模块可以是或不是物理上分开的,实际应用时,可根据需要选择部分或全部模块实现本实施例方案的目的。
68.本发明的各步骤可以用通用的计算机装置来实现,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。本发明不限制于任何特定的硬件和软件的结合。
69.当然,上述说明并非是对本发明的限制,本发明也并不限于上述举例,本技术领域的普通技术人员,在本发明的实质范围内,做出的变化、改型、添加或替换,都应属于本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜