CN102130950B - 基于Hadoop集群的分布式监控方法 - Google Patents

基于Hadoop集群的分布式监控方法 Download PDF

Info

Publication number
CN102130950B
CN102130950B CN 201110060308 CN201110060308A CN102130950B CN 102130950 B CN102130950 B CN 102130950B CN 201110060308 CN201110060308 CN 201110060308 CN 201110060308 A CN201110060308 A CN 201110060308A CN 102130950 B CN102130950 B CN 102130950B
Authority
CN
China
Prior art keywords
master
slave
monitoring
client
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN 201110060308
Other languages
English (en)
Other versions
CN102130950A (zh
Inventor
周学海
吕松武
杨峰
代栋
孙明明
陈涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Institute for Advanced Study USTC
Original Assignee
Suzhou Institute for Advanced Study USTC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Institute for Advanced Study USTC filed Critical Suzhou Institute for Advanced Study USTC
Priority to CN 201110060308 priority Critical patent/CN102130950B/zh
Publication of CN102130950A publication Critical patent/CN102130950A/zh
Application granted granted Critical
Publication of CN102130950B publication Critical patent/CN102130950B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于 Hadoop 集群的分布式监控系统及其监控方法,该系统包括客户端 Client 、主控计算机 Master 和从属计算机 Slave ,其特征在于所述系统中主控计算机 Master 和从属计算机 Slave 基于 Hadoop 集群的 MapReduce 框架构建,所述客户端 Client 负责向主控计算机 Master 提交监控作业请求;所述主控计算机 Master 响应监控作业请求后,将监控作业进行划分后分配给从属计算机 Slave 独立完成;所述从属计算机 Slave 负责完成独立的监控作业任务后,将其结果通过主控计算机 Master 进行整合后回传数据给客户端 Client 。本发明能有效地对分布式计算网络 MapReduce 的任务进度等数据进行有效地监控,且能实时准确地获取监控结果,并在不影响作业执行的前提下实现了独立的动态开关。

Description

基于Hadoop集群的分布式监控方法
技术领域
本发明属于分布式计算技术领域,涉及一种应用于Hadoop分布式作业系统之上的监控系统,特别涉及到对运行MapReduce程序的大规模分布式集群的监控以及控制系统。 
背景技术
Hadoop是一个开源的运行MapReduce任务的分布式中间件,作为重要技术组件被广泛应用于当前各种云计算后台系统中。一般商用的Hadoop集群数目从几百台到上千台不等,随着Hadoop所管理集群规模越来越大,其管理难度也越来越大。一般可将Hadoop集群运行中产生的错误按照来源分为硬件错误、操作系统错误、中间件错误以及用户程序错误。错误来源繁多、集群中各个因素互相影响、错误暴露点和源点往往不在同一台服务器上以及用户程序中的bug导致系统出错等因素使得Hadoop集群的管理开销和难度呈指数增长,因此应用于Hadoop这样的运行MapReduce程序的分布式作业系统之上的监控框架是目前学术界和工业界亟待解决的问题。 
现在应用于Hadoop上的监控框架主要有以下三种:1、以Ganesha为代表的黑盒架构,该类架构主要通过监控集群之间的数据交换以及服务器的性能来获得集群状态,并且通过学习算法来估计错误的发生地;2、X-Trace;X-Trace是一种应用于调试互联网程序的网络诊断工具,研究人员将其应用于Hadoop平台,主要用于监控集群内部的网络状态。3、Mochi;Mochi是一种基于Hadoop的日志的监控系统。利用服务器本地的Log信息,Mochi可以分析出Hadoop集群的各种行为,并且反映给用户,以供用户日后分析程序。 
目前已存的监控系统在实际应用中具有非常明显的缺点。首先,监控框架所得到的数据不够精确,存在大量的干扰数据,无论是使用黑盒或者白盒方法,对于具有数千台服务器的计算机集群来说,监控的数据量过大,即便在自学习或者分类算法的帮助下,对这些数据的分析工作量也很大。其次,监控行为无法在不改变集群状态的情况下启动或者停止,在实际生产环境中,调试或者监控行为越丰富对系统性能影响越大,不能动态改变监控框架的行为就无法很好的应用于生产环境中。综上,目前仍缺少对上述问题有效 解决的工具。本发明因此而来。 
发明内容
为了克服背景技术中所提到的多种不足,本发明的一个目的在于提供一种灵活的、在线的、精准的分布式作业监控系统。 
为了解决现有技术中的这些问题,本发明提供的技术方案是: 
一种基于Hadoop集群的分布式监控系统,包括客户端Client、主控计算机Master和从属计算机Slave,其特征在于所述系统中主控计算机Master和从属计算机Slave基于Hadoop集群的MapReduce框架构建,所述客户端Client负责向主控计算机Master提交监控作业请求;所述主控计算机Master响应监控作业请求后,将监控作业进行划分后分配给从属计算机Slave独立完成;所述从属计算机Slave负责完成独立的监控作业任务后,将其结果通过主控计算机Master进行整合后回传数据给客户端Client。 
优选的,所述主控计算机Master设置有响应服务模块、数据聚合模块、数据返回模块和管理模块;所述响应服务模块负责响应Client的监控控制指令,并由此向Slave发送监控作业指令;所述数据聚合模块用于对所有反馈的数据信息进行计算整合;所述数据返回模块用于将整理计算后作业任务级别的任务信息返回给请求的Client;所述管理模块用于监控Slave的工作状态。 
优选的,所述从属计算机Slave设置监控作业模块,所述监控作业模块用于根据主控计算机Master进行监控作业,并将监控作业结果反馈给主控计算机Master进行整合;所述主控计算机Master与从属计算机Slave间通过心跳协议维持分发、同步用户的监控作业请求。 
优选的,所述Slave和Master上均设置有本地监控入口探针Probe,所述探针Probe根据Master的监控作业指令启闭,获取当前集群中Master和Slave节点上的工作任务信息,并反馈给Master上的数据聚合模块。 
优选的,所述客户端Client设置有预定义的监控脚本和监控行为程序,所述客户端Client和Master通讯获取当前集群中所有处于监控状态的节点的探针插入点处的信息。 
本发明的另一目的在于提供一种基于Hadoop集群的分布式监控方法,其特征在于所述方法包括以下步骤: 
(1)Master建立用于隔离待记录的监控数据与其他数据的数据空间后监听Client的监听作业请求; 
(2)Client向Master发出监控控制指令,要求返回当前集群的作业信息;Master响应Client发出的请求,判断该请求是开启请求还是关闭请求;如果是开启请求,则Master发送指令给相关Slave,以激活指定Slave上的探针,并维护该Slave的状态;如果是关闭请求,则Master将发送关闭指令给指定Slave,以关闭Slave上的探针; 
(3)Slave上的监控作业模块接收Master的指令,获取并统计当前Slave的作业信息,并反馈给Master; 
(4)Master确认收到有效的Slave反馈的程序运行任务信息,保存在已建立的数据空间中,同时根据Client发送的监控作业请求,整合数据空间中的信息,以请求中的格式将结果信息返回给Client;根据监控作业请求继续循环监控。 
优选的,所述方法步骤(2)中Master通过心跳机制对所有处于监控状态中的Slave同步和发布监控控制指令;所述Slave周期性通过远程调用机制把自身的状态信息发送给Master,Master在获取并处Slave的状态信息后,将需要发送给Slave的最新监控控制指令状态作为远程调用的返回值发送给Slave。 
优选的,所述方法中Master数据空间内维护全局监控指令表,所述全局监控指令表存储所有Client递交的监控作业指令,并根据指令的时间先后顺序更改监控作业指令的版本信息;Slave通过远程调用协议传递的状态信息中包含有本地保存的指令表的版本标签,Master在接收到Slave的状态信息后,将Slave发送过来版本标签和其自身的版本标签进行比对;若两者的指令表版本标签一致,则Master将空指令表作为远程调用的返回值发送给Slave;若Master的指令表版本标签较新,则Master将两版本指令表的差作为远程调用的返回值发送给Slave;Slave保存从Master收到的监控指令表,并按照该指令表更新本地指令集。 
优选的,所述方法中探针Probe设置在Hadoop集群系统内与MapReduce作业相关的方法中,MapReduce作业的内部数据为探针所监控;探针激活时探针实时获取MapReduce作业的Cluster、Job、Task、Thread、 Round、UserKey状态数据,并记录后提交返回。 
优选的,所述方法步骤(4)中Master返回给Client的监控作业的级别由Client自定义。 
本发明技术方案基于Apache组织的Hadoop平台下开源分布式计算网络MapReduce系统,本发明进行分布式监控的状态监控系统主要由三部分组成,包括一个或若干个客户端,一个主控计算机和一个或若干个从属计算机。所述客户端用于和主控计算机通讯,发送请求及显示结果等;所述的主控计算机包括响应服务模块、数据聚合模块、数据返回模块和管理模块;所述的从属计算机包括监控作业模块。 
本发明可以实现由一台或多台客户端(Client)、一台主控计算机(Master)和多台从属计算机(Slave)组成的监控框架,基于Hadoop的开源分布式计算系统的MapReduce框架,客户端向主控服务器提交作业任务请求,主控服务器响应该请求,并将作业任务划分,分配给一部分从属计算机独立完成(Map),从属计算机完成各自的作业任务后,将其结果分配给另外一部分从属计算机,该部分从属计算机负责将分配到的计算结果进行整合(Reduce),并输出最终结果。本发明可以反映在主控计算机及从属计算机上监控并记录反馈正在运行的计算任务各种性能数据。具体的本发明的监控框架包含以下特征: 
(1)所述的多个Slave和Master上均包含有本地监控入口,称为探针(Probe),探针的启动和关闭受来自Master的监控作业指令影响。以此控制监控作业程序的开启、关闭,并获取当前集群中Master和Slave节点上的工作任务信息,并反馈给Master上的数据聚合模块; 
(2)所述的Client向所述的Master提交作业请求并接受反馈;Client可以向Master发送监控控制指令,提交监控作业。该监控控制指令包括两部分,监控脚本和监控动作程序。通过提交监控作业,Client端用户可以获取当前分布式系统中所有处于监控状态中的节点的各种信息。所述的各种信息所指为探针插入点处的信息,该信息不仅包括节点信息、作业信息、任务信息还可包含更为细节的程序运行信息。 
(3)所述的Master上包含有响应服务模块,可以响应Client的监控控制指令,并由此向Slave发送监控作业指令;还包含数据聚合模块,用于对 所有反馈的数据信息进行计算整理;还包含数据返回模块,用于将整理计算后作业任务级别的任务信息返回给请求的Client;还包含有管理模块,用于监控Slave的工作状态。 
本发明还可以实现在集群中所有服务器上监控并记录反馈关于数据计算任务性能数据的方法,包含以下步骤: 
(1)建立数据空间供Master将记录的监控数据与其他数据区分开,该数据空间记录关于正在运行作业任务的Slave的相关程序运行级别信息,包括网络信息、当前任务信息、运行的线程信息、任务运行的回合数(Round)以及用户自定义Key等; 
(2)从Client向Master发出监控控制指令,要求返回当前集群的作业信息,该结果基于Master建立的数据空间,是对数据空间的较高层次(MapReduce层次的)抽象; 
(3)Master响应Client发出的请求,判断该请求是开启请求还是关闭请求,如果是开启请求,则Master发送指令给相关Slave,以激活指定Slave上的探针,并维护该Slave的状态;如果是关闭请求,则Master将发送关闭指令给指定Slave,以关闭Slave上的探针; 
(4)Slave上的监控模块接收Master的指令,获取并统计当前Slave的作业信息,并反馈给Master; 
(5)Master确认收到有效的Slave反馈的程序运行任务信息,保存在已建立的数据空间中,同时根据步骤B中Client发送的任务请求,整合数据空间中的信息,以请求中的格式将结果信息返回给Client; 
(6)按照需要,可重复步骤B-E. 
其中,Client获取Master反馈的作业任务级别的信息是可以由Client自定义的,定义的基础是建立在Master上的数据空间,是Master对数据空间的有效分类和一定程度的概括。Master对所有处于监控状态中的Slave同步和发布监控控制指令,是通过心跳机制来实现,即在Slave中包含有一个定时器,每过一定的时间间隔,Slave将使用远程调用机制把自身的状态信息发送给Master,而Master在获取并处理Slave的状态信息后,把需要发送给Slave的最新监控控制指令作为远程调用的返回值发送给Slave。 
Master要维护一个全局监控指令表,该表具有一个版本标签,Master 将所有的指令(包括已经发送的和尚未发送的)保存在表内,对指令表的变更都会按时间先后顺序更改版本标签;Slave通过远程调用(心跳协议)传递的状态信息中包含有本地保存的指令表的版本标签,则Master在接收到Slave的状态信息后,将Slave发送过来版本标签和其自身的版本标签进行比对,若两者的指令表版本标签一致,则Master将空指令表作为远程调用的返回值发送给Slave;若Master的指令表版本标签较新,则Master将两版本指令表的差作为远程调用(心跳协议)的返回值发送给Slave。Slave需要保存刚从Master收到的监控指令表,并按照该指令表更新本地指令集。 
在Slave获取到其需要监控的任务信息后,将使用远程调用机制(心跳协议)把获取到的信息发送给Master,Master在收到信息后将保存在数据空间中;在Master整合计算出作业任务信息后,同样使用远程调用机制把信息发送给Client。所有运行在Slave上的探针仅获取作业任务的相关信息,不能对其进行修改,因此,探针不会对作业任务的运行结果产生影响;探针的开启关闭操作独立于Slave的作业任务运行,因此探针可以动态地运行,即可以按需进行开启关闭等操作;当探针处于开启状态时,探针激活后执行用户指定行为,获取信息并将其返回,当探针处于关闭状态时,探针不再获取信息也不会获得执行权限;探针中所执行的用户行为,不得包括循环、IO访问等耗时和耗资源的行为,探针抛出的异常会被探针的处理模块完全处理,而不会继续抛出。 
本发明中探针(Probe)安装在整个Hadoop系统里与MapReduce作业相关的方法处,作业处的内部数据被暴露给探针代码。探针激活时,用户即可实时获取MapReduce作业的Cluster,Job,Task,Thread,Round,UserKey等状态数据,并按类别记录这些数据,用于提交返回。探针收集到的数据提交给Master的数据聚合模块,该模块将原始数据进行进一步的整理(包括分类和划分等),并将最终结果返回给Client. 
从上,本发明得到一种能够有效的对运行MapReduce作业的Hadoop集群进行监控的方法,该方法能够准确的按照使用者的需求搜集运行在各个机器上的MapReduce作业的工作信息,并将这些信息进行抽象和对应,最终抽象为MapReduce层级的数据提供给使用者,使用者可以根据需要随时启动、停止任意的监控行为,并且根据这些信息有效掌握Hadoop集群的运 行状态。灵活的监控系统主要是指本系统允许用户随时提交监控脚本,该脚本包括了用户需要监控的行为点、匹配条件以及行为及条件匹配时需要执行的动作。脚本一旦提交,该项监控就自动启动,用户退出该监控时,系统监控行为就停止。 
为了减少监控对生产环境下的Hadoop集群性能的影响,在没有用户提交监控脚本的情况下,系统中不存在任何监控行为,本监控框架对系统的影响非常小。用户可以监控的行为点,是本发明的重要部分。通过对Hadoop和MapReduce系统的分析,本发明提出了Hadoop系统中的重要监控行为点:即MapReduce行为相关的方法的入口和出口点。 
用户在监控的行为点可以指定匹配条件,行为点处的变量被暴露给用户脚本,用户可以利用这些变量进行匹配,来选择是否激活指定的动作。用户脚本中指定的动作是Java类中所定义的行为,该行为只能使用Java语言的一个子集实现。不能使用循环、IO等行为。这有助于限制用户动作的执行时间和占用的资源。 
用户编写动作程序可以使用本发明所提供的数据搜集类,该类帮助用户对其所搜集到的数据进行归总。在线的监控系统主要是指本系统允许用户随时提交、开始、停止监控行为而不会影响Hadoop集群的正常执行。 
用户可以通过监控脚本,指明所要监控的任务。这个监控行为的开始和停止,不会影响所监控的任务的执行。监控脚本提交到集群中后,将根据脚本所指,将监控行为点数据发送到集群中所有相关服务器中。本地服务器将激活监控行为点,相关数据存放在运行时环境中。作业执行的过程中,在监控行为点处会检查该点是否已经激活,若激活则执行用户指定行为。 
用户随时可以停止监控脚本执行,停止行为发送到集群中相关服务器中,本地服务器收到该消息后,将关闭该监控行为点。作业执行过程中,在监控行为点处发现并未激活,则不会执行任何用户行为。本发明可以允许精确搜集到用户指定的数据,本系统允许用户根据所需明确的指定需要搜集的数据。用户所搜集的数据都是来源于用户行为。 
在监控行为点,本发明将Hadoop内部的数据暴露给用户行为程序。本发明提供一个InstrumentCollection类库为用户行为中使用。用户可以将任意行为程序中获得的数据通过本类库搜集。该类库将用户数据按照时空进行 分类,分为集群、作业、任务、线程、轮、用户Key。相同时空的数据会在服务器端进行整合。 
与现有技术相比,本发明具有以下显著的优点: 
本发明的系统能有效地对分布式计算网络MapReduce的任务进度等数据进行有效地监控,且能实时准确地获取监控结果,并在不影响作业执行的前提下实现了独立的动态开关。具体说来,包括: 
1.动态。本发明允许用户在生产环境下的运行着的Hadoop集群上增加、删除、修改它们的监控请求,不会影响到集群的执行和集群中作业的执行。 
2.在线。任何用户的行为都不会打断当前正在执行的Hadoop作业或者任务,也不会对集群的运行状态产生影响。 
3.用户自定义监控和行为。本发明允许用户自定义监控的系统行为,并且在监控动作点激活的情况狂下调用用户自定义的行为。用户的自定义行为受到严格的限制。 
4.MapReduce层次的抽象。本发明通过向Hadoop代码中插入监控点的方法来加入监控行为点。这些监控点都加在MapReduce层级事件处。基于这些监控点,得到的数据是MapReduce层次的数据。 
5.对Hadoop系统影响小。本发明使用源代码级别的本地监控,在监控点未激活的情况下,每一个监控点对系统的负荷为一条Java语句。而在监控点激活的情况下,由于本发明限制了用户行为,对系统执行的影响也被限制在一个可控的范围内。 
附图说明
下面结合附图及实施例对本发明作进一步描述: 
图1是本发明基于Hadoop集群的分布式监控系统的架构示意图。 
图2是本发明基于Hadoop集群的分布式监控方法的工作流程图;其中按照Hadoop集群的概念共分为3个模块,Client端、Master端和Slave端。 
图3是本发明的本地监控的流程图。 
具体实施方式
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本发明而不限于限制本发明 的范围。 
实施例 
如图1所示是本发明基于Hadoop集群的分布式监控系统的架构示意图。包含了一个或者多个Client节点,一个Master节点,多个Slave节点。其中Master节点对应着Hadoop后台系统中的Master节点,Slave节点对应着Hadoop中的多个Slave节点,Client节点是集群允许的监控提交服务器。 
每一台Client节点服务器上所需要的模块如下: 
1、ProbeClient模块 
用户通过ProbeClient模块提交监控,其是本发明中任务提交模块的重要组成部分。用户在本发明的框架下进行系统监控至少需要提供两个文件,一个脚本文件probe.xml,其格式和Hadoop本身的配置脚本完全相同。该脚本指明了本次监控的监控点以及监控点激活时触发的动作。另一个文件为jar包文件,其中定义了激活触发的动作。 
配置文件(probe.xml)和动作文件(action.jar)在本模块中被上传到Hadoop的分布式文件系统(HDFS)中,可供集群内的任意服务器访问。 
2、ProbeProtocol通讯接口 
用户通过Client端的ProbeClient模块提交监控,该行为通过ProbeProtocol协议传送给Master节点。并且通过该协议得到来自Master搜集处理后的监控数据。 
本发明的Master节点根据具体的实际需要,包括: 
1、响应服务模块(Master模块) 
响应服务模块和Hadoop本身的JobTracker模块一起启动,仅仅运行在Master节点上。来自Client端的监控请求到达后,通过管理模块管理这个监控请求,并且从HDFS中读出用户提交的两个文件,放入本地工作目录。 
2、管理模块(ProbeManager模块) 
管理模块用于分发同步用户的监控请求。Hadoop系统本身采用心跳协议来维持集群中Slave和Master之间的通讯,本发明利用该协议分发、同步用户的监控请求。本发明采用基于版本号的分发方案,减少了无效数据的传输。本发明采用传差的同步方案,进一步减少了冗余数据的传输。 
3、数据聚合模块(InstrumentCollect模块) 
该模块是数据搜集的核心模块。用户在动作代码中利用该模块进行数据搜集,因此该模块运行于Hadoop集群的所有服务器中。 
数据写入时,按照{集群,作业,任务,线程,轮,用户Key}进行聚类。数据搜集以心跳协议为周期进行聚合。数据聚合到Master节点。由ContextReport模块进行处理。 
4、数据返回模块(ContextReport模块) 
该模块收集所有节点上InstrumentCollect模块发送的数据,聚类后生成可读结果,通过ProbeProtocl发送给Client。 
Slave节点内设置有: 
监控作业模块(LocalInstrument模块),该模块是本发明中进行本地监控的重要模块。 
首先本发明对Hadoop代码中与MapReduce任务执行相关的方法进行编号,并将方法的完整名(包括包名)和该编号的对应关系记录下来。用户在指定监控点时,所使用的为监控点的全名,而在本模块中会自动转化为编号,加快执行速度。 
然后,在Hadoop中需要插入监控点的地方插入桩代码。桩代码可以采用ASM等库直接插入到字节码中,也可以以源代码的形式插入到Hadoop代码中。本发明采用源代码修改的方式插入到Hadoop代码中。桩代码的主要功能就是检查询问本地的ProbeManager模块,是否存在编号为本方法的监控任务。如果没有,则继续执行Hadoop的原代码。 
如果有,意味着此监控点被激活,通过查询ProbeManager,获取需要执行的动作类。实例化,并且执行该动作。 
图2是一个完整的用户监控的流程示意图。 
1.用户使用本架构进行监控,需指定一个xml的配置文件,文件中需指定用户行为类的打包文件,以及指定动作所指定的打包文件中的类名。本工具将用户文件上传到Hadoop的分布式文件系统HDFS中。 
2.上传完成后,读取XML文件,构建一个新的监控对象,并使用ProbeProtocol接口提交该监控对象。由图中可见,Client和Master之间通过一个双工的RPC接口通讯。提交完本监控对象后,Client端进程在本地 挂起,轮询Master的回传数据,暂停10s进行一次轮询,直到用户手动结束本次监控。 
3.Master接收到来自Client端的请求,首先判断该请求是新建一个监控还是结束已有监控。如果是新建监控任务,则根据Client端传来的监控,读出HDFS中的XML配置和动作文件,存放在本地的工作目录中。紧接着就加载用户动作文件,并且利用ProbeManager模块新建调试。如果收到来自Client端的停止监控的请求,则从ProbeManager中删除该监控。最后增加ProbeManager的版本号。 
4.由图中可知,Slave节点通过心跳协议访问Master。访问中会加上Slave节点当前的ProbeManager的版本号。Master在收到该版本号后进行比较。若Master节点的版本号较新,则根据Master节点的版本号历史,传送两个版本号的差给Slave节点。 
5.Slave节点在收到来自Master的心跳回复后,判断ProbeManager是否由更新。若有更新,则接收新的监控对象,读出XML配置文件,下载动作文件到本地,并加载之,通过ProbeManger加载新的监控,更新ProbeManger的版本号到最新版本。 
上文描述了一个用户监控行为在本发明的架构中执行的流程图。图3描述了用户的监控行为是如何被触发的。 
在正常的Hadoop代码的执行流中,必然会进入到本发明插入到Hadoop源代码的桩入口中,进入桩函数,需要判断本地的ProbeManager中是否有已经激活的此桩入口。如果没有,继续回到正常的Hadoop代码执行流中。如果有,则加载XML文件中指定的用户动作,并执行之。执行完成之后还是回到正常的Hadoop代码执行流中。 
上述实例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人是能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。 

Claims (2)

1.一种基于Hadoop集群的分布式监控方法,其特征在于所述方法包括以下步骤:
(1)Master建立用于隔离待记录的监控数据与其他数据的数据空间后监听Client的监控作业请求;
(2)Client向Master发出监控控制指令,要求返回当前集群的作业信息;Master响应Client发出的请求,判断该请求是开启请求还是关闭请求;如果是开启请求,则Master发送指令给相关Slave,以激活指定Slave上的探针,并维护该Slave的状态;如果是关闭请求,则Master将发送关闭指令给指定Slave,以关闭Slave上的探针;Master通过心跳机制对所有处于监控状态中的Slave同步和发布监控控制指令;所述Slave周期性通过远程调用机制把自身的状态信息发送给Master,Master在获取并处理Slave的状态信息后,将需要发送给Slave的最新监控控制指令状态作为远程调用的返回值发送给Slave;其中Master数据空间内维护全局监控指令表,所述全局监控指令表存储所有Client递交的监控控制指令,并根据指令的时间先后顺序更改监控控制指令的版本信息;Slave通过远程调用机制传递的状态信息中包含有本地保存的指令表的版本标签,Master在接收到Slave的状态信息后,将Slave发送过来版本标签和其自身的版本标签进行比对;若两者的指令表版本标签一致,则Master将空指令表作为远程调用的返回值发送给Slave;若Master的指令表版本标签较新,则Master将两版本指令表的差作为远程调用的返回值发送给Slave;Slave保存从Master收到的监控指令表,并按照该指令表更新本地保存的指令表;
(3)Slave上的监控作业模块接收Master的指令,获取并统计当前Slave的程序运行任务信息,并反馈给Master;
(4)Master确认收到有效的Slave反馈的程序运行任务信息,保存在已建立的数据空间中,同时根据Client发送的监控作业请求,整合数据空间中的信息,以请求中的格式将结果信息返回给Client;根据监控作业请求继续循环监控。
2.根据权利要求1所述的监控方法,其特征在于所述方法步骤(4)中Master返回给Client的监控作业的级别由Client自定义。
CN 201110060308 2011-03-14 2011-03-14 基于Hadoop集群的分布式监控方法 Active CN102130950B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110060308 CN102130950B (zh) 2011-03-14 2011-03-14 基于Hadoop集群的分布式监控方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110060308 CN102130950B (zh) 2011-03-14 2011-03-14 基于Hadoop集群的分布式监控方法

Publications (2)

Publication Number Publication Date
CN102130950A CN102130950A (zh) 2011-07-20
CN102130950B true CN102130950B (zh) 2013-10-23

Family

ID=44268839

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110060308 Active CN102130950B (zh) 2011-03-14 2011-03-14 基于Hadoop集群的分布式监控方法

Country Status (1)

Country Link
CN (1) CN102130950B (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102497442A (zh) * 2011-12-22 2012-06-13 陈晓亮 一种在线用户任务分配系统及方法
US8949308B2 (en) * 2012-01-23 2015-02-03 Microsoft Corporation Building large scale infrastructure using hybrid clusters
CN102638566B (zh) * 2012-02-28 2015-03-04 山东大学 一种基于云存储的blog系统运行方法
CN102664961B (zh) * 2012-05-04 2014-08-20 北京邮电大学 MapReduce环境下的异常检测方法
CN102739778A (zh) * 2012-06-05 2012-10-17 包丽霞 一种云平台下统计分析的实现方法
CN103577299A (zh) * 2012-08-02 2014-02-12 北京千橡网景科技发展有限公司 监控方法和装置、数据处理方法和装置及分布式计算系统
CN103500119B (zh) * 2013-09-06 2017-01-04 西安交通大学 一种基于预调度的任务分配方法
CN103533058B (zh) * 2013-10-17 2017-02-08 南京大学镇江高新技术研究院 面向HDFS/Hadoop存储集群的资源监控系统及方法
CN103516811A (zh) * 2013-10-22 2014-01-15 浪潮电子信息产业股份有限公司 一种云存储系统中工控机工作状态的监控方法
CN104636232B (zh) * 2013-11-06 2018-12-04 中国移动通信集团广东有限公司 一种分布式服务系统的性能监控装置和方法
CN103618644A (zh) * 2013-11-26 2014-03-05 曙光信息产业股份有限公司 一种基于hadoop集群的分布式监控系统及其方法
CN103678521B (zh) * 2013-11-30 2016-08-17 电子科技大学 一种基于Hadoop框架的分布式文件监控系统
US9348707B2 (en) 2013-12-18 2016-05-24 International Business Machines Corporation Dynamically adjusting the number of replicas of a file according to the probability that the file will be accessed within a distributed file system
CN103841209A (zh) * 2014-03-19 2014-06-04 中国联合网络通信集团有限公司 数据发送处理方法及装置
CN103944780A (zh) * 2014-04-02 2014-07-23 云南电网公司 一种分布链式流水it监控数据中心数据处理的方法
US11080244B2 (en) * 2014-05-28 2021-08-03 Hewlett Packard Enterprise Development Lp Inter-version mapping of distributed file systems
CN104077398B (zh) * 2014-06-30 2017-09-22 中华电信股份有限公司 基于Hadoop多丛集环境的工作分派系统及方法
US10732588B2 (en) * 2015-06-30 2020-08-04 Lynkros Technology (Beijing) Co., Ltd. Decentralized computing network system and computing processing node used for the same
CN107870824A (zh) * 2016-09-28 2018-04-03 中兴通讯股份有限公司 一种对组件进行巡检的方法及装置
CN106713024A (zh) * 2016-12-14 2017-05-24 郑州云海信息技术有限公司 一种批量集群节点管理方法、系统及计算机集群管理节点
CN108243067A (zh) * 2016-12-23 2018-07-03 上海辰智商务信息咨询有限公司 一种基于wifi探测的用户终端数据采集系统
CN108270634B (zh) * 2016-12-30 2021-08-24 中移(苏州)软件技术有限公司 一种心跳探测的方法及系统
US10209982B2 (en) 2017-05-16 2019-02-19 Bank Of America Corporation Distributed storage framework information server platform architecture
CN108228796A (zh) * 2017-12-29 2018-06-29 百度在线网络技术(北京)有限公司 Mpp数据库的管理方法、装置、系统、服务器及介质
CN108769112B (zh) * 2018-04-18 2021-11-12 江苏物联网研究发展中心 一种非侵入式rpc接口监控方法及系统
CN109194752A (zh) * 2018-09-11 2019-01-11 网御安全技术(深圳)有限公司 一种集群监控方法及系统
CN111107084B (zh) * 2019-12-18 2022-10-11 北京达佳互联信息技术有限公司 一种监控方法、装置、电子设备及存储介质
CN113312359B (zh) * 2021-06-28 2023-04-07 北京筑云慧建软件技术有限公司 一种分布式作业进度计算方法、装置和存储介质
CN113821794B (zh) * 2021-09-14 2023-08-18 北京八分量信息科技有限公司 一种分布式的可信计算系统及方法
CN115250246B (zh) * 2022-09-21 2022-12-06 之江实验室 一种监测虚拟机集群中节点状态的方法和计算机系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286895A (zh) * 2008-05-22 2008-10-15 上海交通大学 可动态配置的分布式网络数据监控系统及方法
CN101577813A (zh) * 2009-05-27 2009-11-11 杭州华三通信技术有限公司 一种视频监控方法、视频监控服务器及编码器设备
CN101770402A (zh) * 2008-12-29 2010-07-07 中国移动通信集团公司 MapReduce系统中的Map任务调度方法、设备及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9178935B2 (en) * 2009-03-05 2015-11-03 Paypal, Inc. Distributed steam processing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286895A (zh) * 2008-05-22 2008-10-15 上海交通大学 可动态配置的分布式网络数据监控系统及方法
CN101770402A (zh) * 2008-12-29 2010-07-07 中国移动通信集团公司 MapReduce系统中的Map任务调度方法、设备及系统
CN101577813A (zh) * 2009-05-27 2009-11-11 杭州华三通信技术有限公司 一种视频监控方法、视频监控服务器及编码器设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
万至臻.基于MapReduce模型的并行计算平台的设计与实现.《中国优秀硕士学位论文全文数据库信息科技辑》.2008,(第07期),
基于MapReduce模型的并行计算平台的设计与实现;万至臻;《中国优秀硕士学位论文全文数据库信息科技辑》;20080715(第07期);正文第17页第12-13行,第27页第5-8行,第28页第15-18行,第35页第1-9行,第36页第4行,第38页第12行—第39页第13行以及图3.4 *

Also Published As

Publication number Publication date
CN102130950A (zh) 2011-07-20

Similar Documents

Publication Publication Date Title
CN102130950B (zh) 基于Hadoop集群的分布式监控方法
US11386058B2 (en) Rule-based autonomous database cloud service framework
Dong et al. Autonomia: an autonomic computing environment
CN112600891B (zh) 一种基于信息物理融合的边云协同系统及工作方法
CN100451989C (zh) 软件测试系统及测试方法
DE112020004623T5 (de) Ml-basierte ereignishandhabung
MXPA05006389A (es) Sistema y metodo para auditar una red.
CN107239675A (zh) 基于云平台的生物信息分析系统
JP2007519075A (ja) 監視ルールのスケーラブル(scalable)な同期処理および非同期処理
CN110336863B (zh) 一种数据上报方法和系统
CN104268056B (zh) 基于复杂事件处理的面向cps应用的实时监控系统及方法
CN108009258A (zh) 一种可在线配置的数据采集与分析平台
Di Sanzo et al. A flexible framework for accurate simulation of cloud in-memory data stores
Bedini et al. Modeling performance of a parallel streaming engine: bridging theory and costs
CN106384283A (zh) 一种基于互联网+的服务总线结构及服务总线系统
Gousios et al. A platform for software engineering research
Ataei et al. NeoMycelia: A software reference architecturefor big data systems
Tundo et al. Automated probe life-cycle management for monitoring-as-a-service
Cardoso et al. A multi-agent platform for hospital interoperability
CN110046319A (zh) 社交媒体信息采集方法、装置、系统、设备及存储介质
CN113779337A (zh) 监管数据上传方法、装置、设备及存储介质
da Silva Orchestration for Automatic Decentralization in Visually-defined IoT
Cui et al. Large scale MTConnect data collection
Cota et al. Viewing hidden data using Hadoop
Rodestock Visualizing and explaining the scaling behavior of self-adaptive microservice systems in kubernetes

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant