一种基于Ambari监控大数据组件的方法及装置与流程

文档序号:13704500阅读:330来源:国知局

本发明涉及计算机技术领域,特别涉及一种基于ambari监控大数据组件的方法及装置。



背景技术:

随着大数据技术的快速发展,对大数据系统中的各个大数据组件的监控越来越受到重视。

现有技术中,对于各个大数据组件的监控主要是通过大数据组件自身的日志进行监控。举例来说,当需要监控大数据组件a时,首先,用户需要获取大数据组件a的日志,然后,用户需要从该日志中查找需要监控的各个监控项的监控值。

通过上述描述可见,现有技术中监控大数据组件的方案比较繁琐。



技术实现要素:

本发明实施例提供了一种基于ambari监控大数据组件的方法及装置,能够更加方便地监控大数据组件。

一方面,本发明实施例提供了一种基于ambari监控大数据组件的方法,包括:

预先为未设置有监控接口的待监控大数据组件设置所述监控接口;

预先在ambari中配置各个所述待监控大数据组件的至少一个监控项;

针对任一所述待监控大数据组件,执行:

调用当前待监控大数据组件的当前监控接口;

从所述当前监控接口中获取所述当前待监控大数据组件的所述至少一个监控项的监控值;

将所述至少一个监控项的监控值转换为所述ambari能够识别的格式;

将转换后的所述至少一个监控项的监控值发送给所述ambari,以使用户利用所述ambari监控所述当前待监控大数据组件的所述至少一个监控项。

进一步地,

所述预先在ambari中配置各个所述待监控大数据组件的至少一个监控项,包括:

预先在所述ambari中的metrics.json文件中添加各个所述待监控大数据组件的所述至少一个监控项的定义。

进一步地,

该方法进一步包括:

预先在所述ambari中的widget.json文件中添加各个所述待监控大数据组件的至少一个监控项中至少一个待显示的监控项的定义,以使所述ambari对所述至少一个待显示的监控项进行显示。

进一步地,

所述将所述至少一个监控项的监控值转换为所述ambari能够识别的格式,包括:

针对每个所述监控项的监控值,将json字符串格式的当前监控值解析为java对象,将所述java对象转换为所述ambari能够识别的格式。

进一步地,

在所述将所述至少一个监控项的监控值转换为所述ambari能够识别的格式之后,在所述将转换后的所述至少一个监控项的监控值发送给所述ambari之前,进一步包括:

针对每个所述监控项的监控值,将当前监控值的名称设置为与所述当前监控值对应的监控项在所述ambari中的名称一致。

进一步地,

所述将转换后的所述至少一个监控项的监控值发送给所述ambari,包括:

将转换后的所述至少一个监控项的监控值保存到缓存中;

周期性地获取所述缓存中的转换后的所述至少一个监控项的监控值,并发送给所述ambari。

另一方面,本发明实施例提供了一种基于ambari监控大数据组件的装置,包括:

设置单元,用于为未设置有监控接口的待监控大数据组件设置所述监控接口;

配置单元,用于在ambari中配置各个所述待监控大数据组件的至少一个监控项;

监控单元,用于针对任一所述待监控大数据组件,执行:

调用当前待监控大数据组件的当前监控接口;

从所述当前监控接口中获取所述当前待监控大数据组件的所述至少一个监控项的监控值;

将所述至少一个监控项的监控值转换为所述ambari能够识别的格式;

将转换后的所述至少一个监控项的监控值发送给所述ambari,以使用户利用所述ambari监控所述当前待监控大数据组件的所述至少一个监控项。

进一步地,

所述配置单元,用于在所述ambari中的metrics.json文件中添加各个所述待监控大数据组件的所述至少一个监控项的定义。

进一步地,

该装置进一步包括:

显示定义单元,用于在所述ambari中的widget.json文件中添加各个所述待监控大数据组件的至少一个监控项中至少一个待显示的监控项的定义,以使所述ambari对所述至少一个待显示的监控项进行显示。

进一步地,

所述监控单元,用于针对每个所述监控项的监控值,将json字符串格式的当前监控值解析为java对象,将所述java对象转换为所述ambari能够识别的格式。

进一步地,

所述监控单元,进一步用于针对每个所述监控项的监控值,将当前监控值的名称设置为与所述当前监控值对应的监控项在所述ambari中的名称一致。

进一步地,

所述监控单元,用于将转换后的所述至少一个监控项的监控值保存到缓存中,周期性地获取所述缓存中的转换后的所述至少一个监控项的监控值,并发送给所述ambari。

在本发明实施例中,为未设置有监控接口的待监控大数据组件设置监控接口,使得各个待监控大数据组件均具有监控接口,在ambari中配置每个待监控大数据组件的监控项,以便于对配置的这些监控项进行监控,调用待监控大数据组件的监控接口获取监控项的监控值,将各个监控值转换为ambari能够识别的格式并发送给ambari,用户直接可以通过ambari监控到各个待监控大数据组件的监控项,无需参与监控值的获取过程等过程,可以直接获取需要的监控值,实现了更加方便地监控大数据组件。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例提供的一种基于ambari监控大数据组件的方法的流程图;

图2是本发明一实施例提供的另一种基于ambari监控大数据组件的方法的流程图;

图3是本发明一实施例提供的一种基于ambari监控大数据组件的装置的示意图;

图4是本发明一实施例提供的另一种基于ambari监控大数据组件的装置的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供了一种基于ambari监控大数据组件的方法,该方法可以包括以下步骤:

预先为未设置有监控接口的待监控大数据组件设置所述监控接口;

预先在ambari中配置各个所述待监控大数据组件的至少一个监控项;

针对任一所述待监控大数据组件,执行:

步骤101:调用当前待监控大数据组件的当前监控接口;

步骤102:从所述当前监控接口中获取所述当前待监控大数据组件的所述至少一个监控项的监控值;

步骤103:将所述至少一个监控项的监控值转换为所述ambari能够识别的格式;

步骤104:将转换后的所述至少一个监控项的监控值发送给所述ambari,以使用户利用所述ambari监控所述当前待监控大数据组件的所述至少一个监控项。

在本发明实施例中,为未设置有监控接口的待监控大数据组件设置监控接口,使得各个待监控大数据组件均具有监控接口,在ambari中配置每个待监控大数据组件的监控项,以便于对配置的这些监控项进行监控,调用待监控大数据组件的监控接口获取监控项的监控值,将各个监控值转换为ambari能够识别的格式并发送给ambari,用户直接可以通过ambari监控到各个待监控大数据组件的监控项,无需参与监控值的获取过程等过程,可以直接获取需要的监控值,实现了更加方便地监控大数据组件。

在本发明实施例中,在监控未设置有监控接口的待监控大数据组件时,调用预先设置的监控接口,在监控设置有监控接口的待监控大数据组件时,调用自带的监控接口。

在本发明一实施例中,所述预先在ambari中配置各个所述待监控大数据组件的至少一个监控项,包括:

预先在所述ambari中的metrics.json文件中添加各个所述待监控大数据组件的所述至少一个监控项的定义。

在本发明实施例中,通过在ambari中的metrics.json文件添加监控项的定义后,ambari能够对这些监控项进行监控,用户在查看ambari中的监控项的监控值时,能够确定对应的定义。当ambari接收到某个监控项的监控值时,能够根据metrics.json文件中的监控项的定义,确定出该监控值对应的监控项。举例来说,监控项为cpu的利用率,接收到的cpu的利用率的监控值为80%,由于在metrics.json文件中的已经设置了cpu的利用率的定义,在接收到该80%的监控值时,能够确定这是cpu的利用率。

在本发明实施例中,metrics.json文件中监控项的定义可以包括监控项的格式的定义。步骤103,具体包括:针对每个监控项的监控值,将当前监控项的监控值转换为当前监控项在metrics.json文件中定义的格式。

在本发明一实施例中,该方法进一步包括:

预先在所述ambari中的widget.json文件中添加各个所述待监控大数据组件的至少一个监控项中至少一个待显示的监控项的定义,以使所述ambari对所述至少一个待显示的监控项进行显示。

在本发明实施例中,通过在widget.json文件中添加监控项的定义,可以使得ambari自动对widget.json文件中的监控项进行显示。举例来说,监控项为cpu的利用率,接收到的cpu的利用率的监控值为80%,由于在widget.json文件中已经设置了cpu的利用率的定义,ambari在接收到监控值为80%,会显示出cpu的利用率为80%,用户可以通过ambari的显示界面查看到该信息。

在本发明实施例中,widget.json文件中监控项的定义可以包括监控项的格式的定义。同个监控项在metrics.json文件中定义的格式于在widget.json文件中定义的格式可以保持一致。

在本发明一实施例中,所述将所述至少一个监控项的监控值转换为所述ambari能够识别的格式,包括:

针对每个所述监控项的监控值,将json字符串格式的当前监控值解析为java对象,将所述java对象转换为所述ambari能够识别的格式。

在本发明实施例中,通过监控接口获取的监控值为json字符串格式的数据,将json字符串格式的监控值解析为java对象后能够更加方便进行后续转换。ambari能够识别的格式可以通过metrics.json文件和/或widget.json文件进行定义,在转换时,可以先根据metrics.json文件和/或widget.json文件确定出具有要转换成的最终格式,然后,将java对象转换为最终格式。

在本发明一实施例中,在所述将所述至少一个监控项的监控值转换为所述ambari能够识别的格式之后,在所述将转换后的所述至少一个监控项的监控值发送给所述ambari之前,进一步包括:

针对每个所述监控项的监控值,将当前监控值的名称设置为与所述当前监控值对应的监控项在所述ambari中的名称一致。

在本发明实施例中,监控项的名称可以在metrics.json文件和/或widget.json文件进行定义。在设置当前监控值的名称时,可以从metrics.json文件和/或widget.json文件中确定出当前监控值对应的监控项的名称,将当前监控值的名称设置为与对应的监控项的名称一致。

在本发明实施例中,通过将监控值的名称设置为与该监控值对应的监控项在ambari中的名称一致,可以使得ambari能够准确确定出该监控值对应的监控项,方便后续对监控项进行监控。举例来说,在ambari中配置有大数据组件a的内存利用率的监控项,在ambari中名称为:大数据组件a的内存利用率,当从大数据组件a的监控接口中获取到内存利用率的监控值为45%时,将该监控值的名称设置为:大数据组件a的内存利用率,这样,当ambari接收到该监控值时,可以准确确定出该监控值为大数据组件a的内存利用率。如果没有将该监控值的名称与对应的监控项设置为一致,那么,在ambari接收到该监控值,无法确定45%代表的意思,即使确定出是内存利用率,可能也无法确定出是哪个大数据组件的内存利用率。

在本发明一实施例中,所述将转换后的所述至少一个监控项的监控值发送给所述ambari,包括:

将转换后的所述至少一个监控项的监控值保存到缓存中;

周期性地获取所述缓存中的转换后的所述至少一个监控项的监控值,并发送给所述ambari。

在本发明实施例中,通过缓存来保存接收到的监控值,再从缓存中获取监控值并发送给ambari,这样,能够防止出现数据过大、阻塞、乱序等问题。

如图2所示,本发明实施例提供了一种基于ambari监控大数据组件的方法,该方法可以包括以下步骤:

预先为未设置有监控接口的待监控大数据组件设置监控接口。

具体地,在大数据组件中,有些大数据组件自带有监控接口,有些大数据组件没有监控接口,为了获取各个监控项的监控值,需要为没有监控接口的大数据组件设置监控接口。其中,监控接口可以是rest接口。监控接口可以通过get方法实现,也可以通过put方法实现。对于get方法实现的监控接口,可以调用监控接口,主动获取对应的待监控大数据组件的监控项的监控值。对于put方法实现的监控接口,可以通过调用监控接口,等待监控接口推送对应的待监控大数据组件的监控项的监控值。

举例来说,大数据组件a没有监控接口,这是,可以根据需要监控的监控项,分析大数据组件a内部的代码,确定出获取各个监控项的方案,进而设置大数据组件a的监控接口。

预先在ambari中的metrics.json文件中添加各个待监控大数据组件的至少一个监控项的定义。

具体地,可以定义各个监控项的名称、格式等。

针对任一待监控大数据组件,执行:

步骤201:调用当前待监控大数据组件的当前监控接口。

具体地,对于自带监控接口的待监控大数据组件,调用其自带的监控接口即可,例如:hdfs、yarn等大数据组件。对于没有自带监控接口的待监控大数据组件,调用为其预先设置的监控接口即可,例如:hive、elasticsearch、spark等大数据组件。

步骤202:从当前监控接口中获取当前待监控大数据组件的至少一个监控项的监控值。

举例来说,待监控大数据组件a的至少一个监控项为:cpu的利用率、内存的利用率和读写的次数。从待监控大数据组件a中获取cpu的利用率、内存的利用率和读写的次数的监控值。

步骤203:针对每个监控项的监控值,将json字符串格式的当前监控值解析为java对象,将java对象转换为ambari能够识别的格式。

举例来说,待监控大数据组件a的cpu的利用率、内存的利用率和读写的次数的监控值均是json字符串格式。将这些监控值解析为java对象,具体可以通过json解析工具jackson来实现。

步骤204:针对每个监控项的监控值,将当前监控值的名称设置为与当前监控值对应的监控项在ambari中的名称一致。

通过该步骤可以使得ambari能够准确确定出各个监控值所对应的监控项。

步骤205:将转换后的至少一个监控项的监控值保存到缓存中。

步骤206:周期性地获取缓存中的转换后的该至少一个监控项的监控值,并发送给ambari,以使用户利用ambari监控当前待监控大数据组件的至少一个监控项。

具体地,ambari在接收到各个监控项的监控值之后,可以对这些监控值进行监控,可以根据用户输入的命令,为用户提供相应的监控服务,例如:可以将监控值显示在显示界面上。

在本发明实施例中,可以将转换后的至少一个监控项的监控值发送ambari的metricscollector模块,通过metricscollector模块接收这些监控值。

在本发明实施例中,待监控大数据组件的监控项可以是待监控大数据组件的运行信息。

在本发明实施例中,可以利用ambari的页面统一展示各待监控大数据组件的监控项。

在本发明实施例中,可以对各个待监控大数据组件进行监控,可以利用ambari统一监控各个待监控大数据组件的运行状态,增强了大数据组件的可维护性,提高了ambari的可扩展性,集中式的管理让用户更加方便,可视化的操作给了用户更好的体验,高度模块化的代码减少了开发者的工作量。

如图3、图4所示,本发明实施例提供了一种基于ambari监控大数据组件的装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所示,为本发明实施例提供的一种基于ambari监控大数据组件的装置所在设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图4所示,作为一个逻辑意义上的装置,是通过其所在设备的cpu将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的一种基于ambari监控大数据组件的装置,包括:

设置单元401,用于为未设置有监控接口的待监控大数据组件设置所述监控接口;

配置单元402,用于在ambari中配置各个所述待监控大数据组件的至少一个监控项;

监控单元403,用于针对任一所述待监控大数据组件,执行:

调用当前待监控大数据组件的当前监控接口;

从所述当前监控接口中获取所述当前待监控大数据组件的所述至少一个监控项的监控值;

将所述至少一个监控项的监控值转换为所述ambari能够识别的格式;

将转换后的所述至少一个监控项的监控值发送给所述ambari,以使用户利用所述ambari监控所述当前待监控大数据组件的所述至少一个监控项。

在本发明一实施例中,所述配置单元,用于在所述ambari中的metrics.json文件中添加各个所述待监控大数据组件的所述至少一个监控项的定义。

在本发明一实施例中,该装置进一步包括:

显示定义单元,用于在所述ambari中的widget.json文件中添加各个所述待监控大数据组件的至少一个监控项中至少一个待显示的监控项的定义,以使所述ambari对所述至少一个待显示的监控项进行显示。

在本发明一实施例中,所述监控单元,用于针对每个所述监控项的监控值,将json字符串格式的当前监控值解析为java对象,将所述java对象转换为所述ambari能够识别的格式。

在本发明一实施例中,所述监控单元,进一步用于针对每个所述监控项的监控值,将当前监控值的名称设置为与所述当前监控值对应的监控项在所述ambari中的名称一致。

在本发明一实施例中,所述监控单元,用于将转换后的所述至少一个监控项的监控值保存到缓存中,周期性地获取所述缓存中的转换后的所述至少一个监控项的监控值,并发送给所述ambari。

上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行本发明实施例提供的任意一种基于ambari监控大数据组件的方法。

本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;

所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的执行指令,以使所述存储控制器执行本发明实施例提供的任意一种基于ambari监控大数据组件的方法。

本发明各个实施例至少具有如下有益效果:

1、在本发明实施例中,为未设置有监控接口的待监控大数据组件设置监控接口,使得各个待监控大数据组件均具有监控接口,在ambari中配置每个待监控大数据组件的监控项,以便于对配置的这些监控项进行监控,调用待监控大数据组件的监控接口获取监控项的监控值,将各个监控值转换为ambari能够识别的格式并发送给ambari,用户直接可以通过ambari监控到各个待监控大数据组件的监控项,无需参与监控值的获取过程等过程,可以直接获取需要的监控值,实现了更加方便地监控大数据组件。

2、在本发明实施例中,通过缓存来保存接收到的监控值,再从缓存中获取监控值并发送给ambari,这样,能够防止出现数据过大、阻塞、乱序等问题。

3、在本发明实施例中,可以对各个待监控大数据组件进行监控,可以利用ambari统一监控各个待监控大数据组件的运行状态,增强了大数据组件的可维护性,提高了ambari的可扩展性,集中式的管理让用户更加方便,可视化的操作给了用户更好的体验。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃····〃”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质中。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1