Hadoop集群用户资源监控方法和系统与流程

文档序号:17772871发布日期:2019-05-28 19:39阅读:2542来源:国知局
Hadoop集群用户资源监控方法和系统与流程

本公开涉及hadoop集群资源管理技术领域,具体地,涉及一种hadoop集群用户资源监控方法和系统。



背景技术:

当前对hadoop集群的需求越来越广泛,hadoop集群多用户的租用更加普遍,由分层架构的yarn来完成的多用户任务下的合理的资源调度显得尤为重要。yarn的系统框架中有两个重要的组件:一个是resourcemanager(简称rm),负责任务的资源调度管理;另一个是与用户的应用任务形成一对一模式的applicationmaster(简称am),负责申请资源并监控任务运行状况。

在rm中,调度器scheduler的调度模式可以使用官方提供的fifo先进先出模式、capacity队列模式、或者fairshare灵活平分资源模式,也可以自定义调度规则。其中,capacity队列模式和fairshare灵活平分资源都是采用队列的模式,内部依然按照fifo原则,其同级队列在遵守按比例分配的原则下,可以互相使用空闲资源。

对于一个hadoop集群的集群管理者,他除了关心资源的隔离调度使用外,还比较关心每个用户到底使用了多少资源,以便根据用户资源使用情况制定相应的资源分配策略,或者根据用户资源实际使用情况升级集群,然而目前还没有任何技术方案来满足这方面的需求。



技术实现要素:

本公开的目的是提供一种hadoop集群用户资源监控方法和系统,用于监控单个用户的资源使用情况。

为了实现上述目的,本公开提供一种hadoop集群用户资源监控方法,其中,包括以下步骤:

从hadoop集群的主、备节点采集用户的作业日志信息;

从用户的作业日志信息中按照设定的数据参数提取出对应的有用数据;以及

根据统计参数统计所述有用数据,得到与其对应的统计数据。

可选地,所述有用数据包括用户数据、作业数据和资源数据。

可选地,所述方法中的所述统计参数分别为用户身份标识、作业标识、作业运行时间、总作业量、单位时间提交作业量、总作业量对应的总运行时间、使用资源量、总作业量对应的总使用资源量、占用资源量、总作业量对应的总占用资源量、被抢占资源量和总作业量对应的总被抢占资源量中的一种或多种;

对应地,所述用户数据为用户名;

所述作业数据为作业标识和每个作业的运行时间;

所述资源数据为每个作业的使用资源量、每个作业的占用资源量和每个作业的被抢占资源量。

可选地,所述的hadoop集群用户资源监控方法还包括:

对所述统计数据按照预置排序参数排序。

可选地,所述的hadoop集群用户资源监控方法还包括:

接收查询指令,根据查询指令中的查询条件,从得到的统计数据中查询符合查询条件的统计数据。

可选地,所述的hadoop集群用户资源监控方法还包括:在接收到查询指令时,从所述查询指令中的查询条件中解析出所述统计参数。

可选地,所述的hadoop集群用户资源监控方法还包括:输出符合查询条件的统计数据。

为了实现上述目的,本公开还提供了一种hadoop集群用户资源监控系统,包括:

采集模块,用于从hadoop集群的主、备节点实时采集用户的作业日志信息;

数据提取模块,用于从用户的作业日志信息中按照设定的数据参数提取出对应的有用数据;和

统计模块,用于根据统计参数统计所述有用数据,得到与其对应的统计数据。

可选地,所述采集模块包括:

接口调用单元,用于调用yarnapi,通过所述yarnapi从hadoop集群的主、备节点收集用户的作业日志信息;和

数据保存单元,用于将收集到的用户的作业日志信息存入数据持久层的数据库。

可选地,所述采集模块还包括:

格式转换单元,用于按照预定格式规则,转换所述yarnapi收集的用户的作业日志信息的格式;对应地,所述数据保存单元将转换格式后的用户的作业日志信息存入数据持久层的数据库。

可选地,所述的hadoop集群用户资源监控系统还包括交互界面,用于输入查询指令和输出符合查询条件的统计数据。

可选地,所述统计模块接收查询指令,从所述查询指令中的查询条件中解析出所述统计参数,并将所述统计数据返回给所述交互界面。

可选地,所述的hadoop集群用户资源监控系统还包括查询模块,其与所述交互界面相连接,接收查询指令,根据查询指令中的查询条件,从得到的统计数据中查询符合查询条件的统计数据,并将查询到的统计数据返回给所述的交互界面。

可选地,所述交互界面为web应用界面。

通过上述技术方案,本公开基于yarn的资源分配管理方式,通过yarnapi采集用户的作业日志信息,收集作业起止运行时间、用户信息、使用资源量等信息,统计每个用户资源使用情况。本公开在不影响hadoop集群系统性能的同时,实时监控集群内每个用户的资源使用情况,使集群管理者能够准确掌握每个用户对资源的使用情况,并根据用户对资源的使用情况,更加合理地为用户分配可利用的资源,从而能够更加合理地调整集群资源,为集群是否需要扩容及如何扩容提供依据。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是本公开一个实施例提供的hadoop集群用户资源监控方法流程图;

图2是本公开一个实施例提供的hadoop集群用户资源监控系统的原理框图;

图3是本公开一个实施例提供的hadoop集群用户资源监控系统的整体架构图;

图4是本公开一个实施提供的采集模块的功能结构图;

图5是本公开一个实施提供的统计模块的功能结构图;

图6是本公开一个实施提供的另一种统计模块的功能结构图。

附图标记说明

1、300—采集模块2—数据提取模块

310—接口调用单元

320—数据保存单元

330—格式转换单元

3、200—统计模块4—采集数据库

210a、210b—数据提取单元

220a、220b—统计单元

230a—查询单元

5—结果数据库

100—web应用单元400—大数据平台

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

在本公开中,在未作相反说明的情况下,所述的hadoop集群是一个采用yarn(yetanotherresourcenegotiator)方式管理集群资源的大数据平台。

用户数据是指与hadoop集群用户身份相关的数据,如用户名。

作业数据是指与hadoop集群用户提交的作业相关的数据,如:作业标识每个作业的运行时间等。

资源数据是指与资源相关的数据,如:每个作业的使用资源量(即该作业总共使用的资源量)、每个作业的占用资源量(除了分配给该作业的资源,在其它资源空闲的情况下使用了超出分配资源量的资源)、每个作业的被抢占资源量(原本为该作业分配的资源,但是被其他作业使用了的资源)等。

数据参数是指在采集数据时的依据参数,如用户身份标识(id)、作业标识(id)、运行时间等。

有用数据是指根据数据参数采集到的数据,即本公开中用户关心的数据,其为统计的原始数据。

统计参数是指用于统计数据时采用的依据参数,如:用户身份标识、作业标识、作业运行时间、总作业量、单位时间提交作业量、总作业量对应的总运行时间、使用资源量、总作业量对应的总使用资源量、占用资源量、总作业量对应的总占用资源量、被抢占资源量和总作业量对应的总被抢占资源量等。

如图1所示,为本公开一实施例提供的hadoop集群用户资源监控方法流程图,所述方法包括如下步骤:

步骤s1,从hadoop集群的主、备节点采集用户的作业日志信息。例如,通过调用yarnapi的方式从hadoop集群的主、备节点收集用户提交的作业日志信息。例如通过restfulapi接口调用查看指定任务的详细信息http发送链接gethttp://192.168.1.1:9009/ws/v1/cluster/apps/作业号,则可以返回该作业的详细日志信息。

例如,收集到一个用户提交的作业日志信息如下:

id:application_1531122299684_0056

user:aisinobi

name:selectsubstr(b.flbm,1,5),sum(je)zj...desc(stage-4)

applicationtype:mapreduce

queue:ysbbyjkfb

applicationtags:

state:finished

finalstatus:succeeded

started:monjul0919:02:54+08002018

elapsed:22sec

trackingurl:history

totalresourcepreempted:<memory:0,vcores:0>

totalnumberofnon-amcontainerspreempted:0

totalnumberofamcontainerspreempted:0

resourcepreemptedfromcurrentattempt:<memory:0,vcores:0>

numberofnon-amcontainerspreemptedfromcurrentattempt:0

aggregateresourceallocation:79536mb-seconds,44vcore-seconds

步骤s2,从用户的作业日志信息中按照设定的数据参数提取出对应的有用数据。例如,以“id”、“user”、“name”等作为数据参数,从中提取有的有用数据分别为:用户名为“aisinobi”,作业标识(id)为“application_1531122299684_0056”,资源数据项目中的“抢占资源(totalresourcepreempted)”对应的资源数据是0;“被抢占资源(resourcepreemptedfromcurrentattempt)”对应的资源数据是0;“使用资源(aggregateresourceallocation)”对应的资源数据是79536mb-seconds,44vcore-seconds等等。

步骤s3,根据统计参数统计所述有用数据,得到与其对应的统计数据。

经过步骤s1可以得到hadoop集群中所有用户的作业日志信息,其中,每个用户可能提交一个或多个作业。步骤s3在步骤s2中提取出的各种有用数据的基础上,根据统计参数对所述各种有用数据进行查询、汇总。例如,以“用户身份标识”为统计参数,可以查询到所有相同用户身份标识的作业日志信息。配合统计参数“作业标识”,可以查询得到所有的作业。配合统计参数“总作业量”,将查询到的作业个数相加,则可以得到所述用户提交的总作业量。如果配合统计参数“使用资源量”,根据“使用资源量”可以查询到所述用户的每一个作业的使用资源量,将每一个作业的使用资源量相加求和,可以得到所述用户提交的总作业量对应的总使用资源量。

其中,为了增加了解用户资源使用情况的便利性,本公开利用一个交互界面来输入查询条件和查询指令,并将查询到的统计数据在交互界面中显示。通过对交互界面的设计,可以预置各种查询项,用户只需选择不同的查询项,便可以组合出不同的查询条件。对于查询出的来的统计数据的输出,可预置多种输出方式,如表格形式、图形形式、动态图形式,甚至于语音形式。

作为一个具体实施例,所述步骤s3可以具体实施为以下步骤:

步骤s31a,根据统计参数统计所述有用数据,得到与其对应的统计数据,并存储在结果数据库中。例如,分别按照参数统计“用户身份标识”、“总作业量”、“单位时间提交作业量”、“总作业量对应的总运行时间”、“使用资源量”、“总作业量对应的总使用资源量”、“占用资源量”、“总作业量对应的总占用资源量”、“被抢占资源量”和“总作业量对应的总被抢占资源量”得到每个用户的对应的统计数据,并存储到结果数据库中。

步骤s32a,当接收到来自于交互界面的查询指令时,根据查询指令中的查询条件,在所述结果数据库中查询符合查询条件的统计数据,并返回给所述交互界面。

本实施例对应于大数据量的情形,为了快速返回给用户结果,本实施例先按照设定的统计参数进行统计、计算等,将统计数据存储到结果数据库中,在用户查询时,可以快速为用户提供结果。

作为另一个具体实施例,所述步骤s3可以具体实施为以下步骤:

步骤s31b,当接收到来自于交互界面的查询指令时,从所述查询指令中的查询条件中解析出统计参数。例如,用户通过组合交互界面中的查询项生成查询条。在本实施例中,所述查询项对应为统计参数,因而,可从查询条件中解析出统计参数,例如:“用户名”为xxxx的“总作业量”及“总作业量对应的总使用资源量”。

步骤s32b,根据统计参数统计所述有用数据,得到与其对应的统计数据,并返回给所述交互界面。具体地,通过“用户名”为xxxx,从采集到的有用数据中查询用户名为xxxx的所有作业数据,及每个作业中的使用资源量,根据统计参数“总作业量”,统计作业的数量,根据统计参数“总作业量对应的总使用资源量”,将每个作业的使用资源量相加,得到总使用资源量。最后将用户名为xxxx的总作业量和总使用资源量返回到用户界面。

本实施例对应于轻量级数据量的情形,在用户查询时再进行统计、计算等,由于数据量不大,因而可以达到快速向用户返回结果的目的。

在一个实施例中,在前述步骤s3之后还包括对所述统计数据按照预置排序参数排序。所述的排序参数例如为总作业量、总使用资源量等,因而可以提供排好序的统计数据,可以使集群管理者更容易了解集群内用户的资源使用情况。

通过本公开提供的hadoop集群用户资源监控方法,可以获得hadoop集群内单个用户的资源情况,便于集群管理者根据每个用户对资源的使用情况,更合理的为用户分配资源,更合理地调整集群资源。

如图2所示,为本公开一实施例提供的hadoop集群用户资源监控系统的原理框图。所述hadoop集群用户资源监控系统包括采集模块1、数据提取模块2和统计模块3,其中,所述采集模块1从hadoop集群的主、备节点采集用户的作业日志信息,并将所述作业日志信息存入采集数据库4。所述数据提取模块2从采集数据库4中用户的作业日志信息中提取出有用数据,例如用户数据、作业数据和资源数据,并发送给所述统计模块3。所述统计模块3根据统计参数统计与其对应的用户数据、作业数据或/和资源数据得到结果数据,并存入结果数据库5。

具体地,如图3所示,为本公开一实施例提供的hadoop集群用户资源监控系统的整体架构图。

其中的大数据平台400是要统计用户资源使用情况的hadoop集群,其中包括hadoop集群架构中的分布式计算框架mapreduce、数据仓库工具hive、分布式数据库hbase、计算引擎spark和文件系统hdfs,并配置hadoop集群使用yarn进行资源管理,通过yarn分配集群资源。

采集模块300是个轻量级模块,其调用yarnapi实时监控yarn资源调度使用情况的数据。在不影响hadoop集群性能的前提下,yarnapi采集集群的主、备节点,将采集到的数据存入数据持久层的数据库中。为了区别于统计数据的存储位置,将存储有采集数据的数据库称为采集数据库。存储统计数据的结果数据库同样位于数据持久层。其中,采集到的数据包括:作业标识(id)、用户名、作业类型、队列、开始时间、运行时间、抢占资源量、被抢占资源量、资源消耗量、队列名等。

具体地,所述采集模块300的功能结构图如图4所示,所述采集模块300包括接口调用单元310和数据保存单元320,其中,接口调用单元310用于调用yarnapi,通过所述yarnapi从hadoop集群的主、备节点收集用户的作业日志信息。数据保存单元320将用yarnapi收集到的用户的作业日志信息存入数据持久层的采集数据库4。如果采集到的作业日志信息中的数据的数据格式与采集数据库4中的数据格式不同,所述采集模块300还包括格式转换单元330,用于按照采集数据库4中的数据格式,转换所述yarnapi收集的用户的作业日志信息的格式。然后,所述数据保存单元320将转换格式后的用户的作业日志信息存入数据持久层的采集数据库4。

在本实施例中,统计模块200的功能结构图如图5所示,在本实施例中,统计模块200包括数据提取单元210a、统计单元220a和查询单元230a。其中,数据提取单元210a从采集数据库4中提取出用户数据、作业数据和资源数据等有用数据,将其发送给统计单元220a。统计单元220a根据预置的统计参数统计与其对应的用户数据、作业数据和资源数据,并将统计后得到的统计数据保存在结果数据库5中。当采集数据库4中的用户作业日志信息有更新时,数据提取单元210a从更新的信息中提取出对应的用户数据、作业数据和资源数据,统计单元220a重新根据预置的统计参数从更新数据中统计与其对应的用户数据、作业数据和资源数据,并存入结果数据库5中。查询单元230a通过restful接口向上层的web应用单元100提供数据访问功能。web应用单元100为一交互界面,其用于输入查询指令、显示符合查询条件的统计数据。查询单元230a接收web应用单元100发送来的查询指令,并根据查询指令中的查询条件查询结果数据库5,将查询到符合查询条件的统计数据输出给web应用单元100。

在另一个实施例中,所述统计模块200的功能结构图如图6所示,在本实施例中,统计模块200包括数据提取单元210b和统计单元220b。其中,统计单元模块200通过restful接口向上层的web应用单元100提供数据访问功能。当接收到web应用单元100发送来的查询指令时,数据提取单元210b从采集数据库4中提取出用户数据、作业数据和资源数据等有用数据,将其发送给统计单元220b,统计单元220b从所述查询指令中的查询条件中解析出所述统计参数,并根据统计参数统计所述数据提取单元210b发送来的数据,最终将统计数据返回给所述web应用单元100。

关于上述实施例中的模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,例如将图2中的数据提取模块和统计模块合并为一个组件,由一个处理器来完成。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

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