首页> 中国专利> Hadoop集群性能优化方法及装置和节点状态识别方法及装置

Hadoop集群性能优化方法及装置和节点状态识别方法及装置

摘要

本发明实施例公开了一种Hadoop集群性能优化方法及装置和节点状态识别方法及装置,该优化方法应用于主节点,包括:获取指定时间段内每个已完成作业中各个任务对应的状态信息;针对每个执行节点,根据在指定时间段内所有已完成作业中的每个任务的输入数据量和执行时长,按照预设算法获得每个执行节点在指定时间段内的第一状态参数;根据第一状态参数,确定在指定时间段内执行任务速度最慢的一个或多个执行节点;从所述在指定时间段内执行任务速度最慢的一个或多个执行节点中,选择出满足预设条件的执行节点进行关闭处理。应用本发明实施例能够识别出节点的状态,进而优化Hadoop集群的性能,提高Hadoop集群整体的数据处理效率。

著录项

  • 公开/公告号CN104331520A

    专利类型发明专利

  • 公开/公告日2015-02-04

    原文格式PDF

  • 申请/专利权人 北京奇艺世纪科技有限公司;

    申请/专利号CN201410710121.5

  • 发明设计人 刘骋昺;

    申请日2014-11-28

  • 分类号G06F17/30(20060101);

  • 代理机构北京柏杉松知识产权代理事务所(普通合伙);

  • 代理人马敬;项京

  • 地址 100080 北京市海淀区北一街2号鸿城拓展大厦10、11层

  • 入库时间 2023-12-17 03:22:58

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-08-07

    授权

    授权

  • 2015-03-11

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20141128

    实质审查的生效

  • 2015-02-04

    公开

    公开

说明书

技术领域

本发明涉及数据处理技术领域,特别涉及一种Hadoop集群性能优化方法及 装置和节点状态识别方法及装置。

背景技术

Hadoop是一个能够对大量数据进行分布式处理的软件框架,Hadoop框架可 在单一的计算机节点上使用(开发和调试时),也可以在构成集群的多个计算机 节点上使用。

在hadoop集群中包括一个主节点和多个从节点,当客户端有大数据需要处 理时,客户端会将大数据划分为许多数据块,并发送消息给Hadoop集群中的主 节点,询问哪些从节点可以执行数据块处理。由主节点在Hadoop集群中选择可 用的从节点,作为执行节点,以消息的方式通知给客户端。然后客户端将被划 分的这些数据块分配并复制到各个执行节点上进行数据处理。通常,完成一次 大数据的处理称为完成一个作业。

各个执行节点执行数据处理的过程包括两个阶段:第一处理阶段为map处 理阶段,各个执行节点以完全并行的方式对分配给自身的数据块执行map函数 处理,完成一个map函数处理称为完成一个map任务;第二处理阶段为reduce 处理阶段,对执行完map函数后获得的执行结果再执行reduce函数处理,完成 一个reduce函数处理称为完成一个reduce任务;各个执行节点都把map任务执 行结果和reduce任务执行结果返回给主节点,主节点对所有任务的执行结果进 行管理。

在Hadoop集群中一个作业的执行时长由最慢的执行节点来决定,当因为硬 件、系统或者配置等原因而导致某些从节点任务执行缓慢时,会导致Hadoop集 群整体性能下降,整体的数据处理效率降低。

发明内容

本发明实施例的目的在于提供一种Hadoop集群性能优化方法及装置和节点 状态识别方法及装置,以识别出节点的状态,进而优化Hadoop集群的性能,提 高Hadoop集群整体的数据处理效率。

为达到上述目的,本发明实施例公开了一种Hadoop集群性能优化方法,应 用于Hadoop集群主节点,包括:

获取指定时间段内每个已完成作业中各个任务对应的状态信息;所述状态 信息包括与所述任务对应的执行节点名称、输入数据量和完成各任务的执行时 长;

针对每个执行节点,根据在指定时间段内所有已完成作业中的每个任务的 输入数据量和执行时长,按照预设算法获得每个执行节点在指定时间段内的第 一状态参数;所述第一状态参数表示该执行节点在指定时间段内执行任务速度 的快慢;

根据各个执行节点的第一状态参数,确定在指定时间段内执行任务速度最 慢的一个或多个执行节点;

从所述在指定时间段内执行任务速度最慢的一个或多个执行节点中,选择 出满足预设条件的执行节点进行关闭处理。

其中,所述每个已完成作业中各个任务可以包括:每个已完成作业中各个 map任务和每个已完成作业中各个任务reduce任务;所述根据在指定时间段内 所有已完成作业中的每个任务的输入数据量和执行时长,按照预设算法获得每 个执行节点在指定时间段内的第一状态参数,包括:

去除每个作业中所述输入数据量异常的任务;

对剩余每个作业中的map任务按照执行时长进行排序;每个作业中的reduce 任务按照执行时长进行排序;

按照map任务和reduce任务中执行时长从长到短,对预设百分比数量的任 务中每个任务对应的执行节点计一分;

获得每个执行节点在指定时间段内的分数,作为所述执行节点的第一状态 参数;

相应地,所述根据各个执行节点的第一状态参数,确定在指定时间段内执 行任务速度最慢的一个或多个执行节点,包括:

对所述各个执行节点的分数进行比较;

将所述分数最高的执行节点确定为执行任务速度慢的节点;

或者,对各个执行节点的分数计算出平均值和标准差;

判断各个执行节点的分数与所述平均值的差值是否在预设的差值阈值以上,

如果是,将所述执行节点确定为执行速度慢的执行节点。

所述去除每个作业中所述输入数据量异常的任务,可以包括:

判断所述已完成作业中的每个任务的输入数据量是否大于预设的输入数据 量阈值;

将输入数据量大于预设的输入数据量阈值的任务,确定为输入数据量异常 的任务;

去除所确定的输入数据量异常的任务。

所述从所述在指定时间段内执行任务速度最慢的一个或多个执行节点中, 选择出满足预设条件的执行节点进行关闭处理,可以包括:

根据所述执行速度最慢的一个或多个执行节点的输入数据量和执行时长, 得到所述执行速度最慢的一个或多个执行节点的平均执行任务速度;

判断所述平均执行任务速度是否超过预设平均执行任务速度阈值;

如果是,选择超过预设平均执行任务速度阈值的执行节点进行关闭处理。

所述方法还可以包括:

发送通知给所述Hadoop集群的管理员,所述通知包括:所述执行速度最慢 的一个或多个执行节点的执行节点名称和所述执行速度最慢的一个或多个执行 节点的平均任务执行时长。

本发明实施例还公开了一种Hadoop集群中节点状态识别方法,应用于 Hadoop集群的主节点,包括:

获取指定时间段内每个已完成作业中各个任务对应的状态信息;所述状态 信息包括与所述任务对应的执行节点名称、输入数据量和完成各任务的执行时 长;

针对每个执行节点,根据在指定时间段内所有已完成作业中的每个任务的 输入数据量和执行时长,按照预设算法获得每个执行节点在指定时间段内的第 一状态参数;所述第一状态参数表示该执行节点在指定时间段内执行任务速度 的快慢;

根据各个执行节点的第一状态参数,确定在指定时间段内执行任务速度最 慢的一个或多个执行节点。

本发明还公开了一种Hadoop集群性能优化装置,应用于Hadoop集群主节 点,包括:

第一获取模块,用于获取指定时间段内每个已完成作业中各个任务对应的 状态信息;所述状态信息包括与所述任务对应的执行节点名称、输入数据量和 完成各任务的执行时长;

第二获取模块,用于针对每个执行节点,根据所述第一获取模块获取的在 指定时间段内所有已完成作业中的每个任务的输入数据量和执行时长,按照预 设算法获得每个执行节点在指定时间段内的第一状态参数;所述第一状态参数 表示该执行节点在指定时间段内执行任务速度的快慢;

确定模块,用于根据所述第二获取模块获取的各个执行节点的第一状态参 数,确定在指定时间段内执行任务速度最慢的一个或多个执行节点;

优化模块,用于从所述确定模块确定的在指定时间段内执行任务速度最慢 的一个或多个执行节点中,选择出满足预设条件的执行节点进行关闭处理。

其中,所述第二获取模块,可以包括:

去除单元,用于去除每个作业中所述输入数据量异常的任务;

排序单元,用于对所述去除单元去除异常任务后剩余每个作业中的map任 务按照执行时长进行排序;每个作业中的reduce任务按照执行时长进行排序;

计分单元,按照map任务和reduce任务中执行时长从长到短,对预设百分 比数量的任务中每个任务对应的执行节点名称计一分;

获取单元,用于获得每个执行节点在指定时间段内的分数作为所述执行节 点的第一状态参数;

相应地,所述确定模块,可以包括:

比较单元,用于对所述各个执行节点的分数进行比较;

第一确定单元,用于将所述比较单元比较得出的分数最高的执行节点确定 为执行任务速度慢的节点;

或者,所述确定模块,可以包括:

第一计算单元,用于对各个执行节点的分数计算出平均值和标准差;

第一判断单元,用于判断各个执行节点的分数与所述平均值的差值是否在 预设的差值阈值以上,

第二确定单元,用于在所述第一判断单元在判断出有执行节点的分数与所 述平均值的差值在预设的差值阈值以上时,将所述执行节点确定为执行速度慢 的节点。

所述去除单元,可以包括:

判断子单元,用于判断所述已完成作业中的每个任务的输入数据量是否大 于预设的输入数据量阈值;

去除子单元,用于在所述判断子单元判断所述输入数据量的值大于所述预 设的输入数据阈值的情况下,将与所述输入数据信息对应的任务去除。

所述优化模块,可以包括:

第二计算单元,用于根据所述执行速度最慢的一个或多个执行节点的输入 数据量和执行时长,得到所述执行速度最慢的一个或多个执行节点的平均执行 任务速度;

判断单元,用于判断所述平均执行任务速度是否超过预设平均执行任务速 度阈值;

优化单元,用于在所述判断单元在判断出平均执行任务速度超过预设平均 执行任务速度阈值时,选择超过预设平均执行任务速度阈值的执行节点进行关 闭处理。

所述装置还可以包括:

发送模块,用于根据所述确定模块发送通知给所述Hadoop集群的管理员, 所述通知包括:所述执行速度最慢的一个或多个执行节点的执行节点名称,所 述执行速度最慢的一个或多个执行节点的平均任务执行时长。

本发明实施例还公开一种Hadoop集群节点状态识别装置,应用于Hadoop 集群主节点,包括:

第一获取模块,用于获取指定时间段内每个已完成作业中各个任务对应的 状态信息;所述状态信息包括与所述任务对应的执行节点名称、输入数据量和 完成各任务的执行时长;

第二获取模块,用于针对每个执行节点,根据所述第一获取模块获取的在 指定时间段内所有已完成作业中的每个任务的输入数据量和执行时长,按照预 设算法获得每个执行节点在指定时间段内的第一状态参数;所述第一状态参数 表示该执行节点在指定时间段内执行任务速度的快慢;

识别模块,用于根据所述第二获取模块获取的各个执行节点的第一状态参 数,识别在指定时间段内执行任务速度最慢的一个或多个执行节点。

本发明实施例提供的技术方案,通过获取指定时间段内每个已完成作业中 各个任务对应的状态信息,根据获取的状态信息获得每个执行节点在指定时间 段内的第一状态参数,该第一状态参数表示该执行节点在指定时间段内执行任 务速度的快慢,根据各个执行节点的第一状态参数可以找到在多次执行任务过 程中都需要较长执行任务时间的执行节点,确定出执行速度最慢的一个或多个 执行节点,并选择出满足预设条件的执行节点进行关闭处理。与现有技术相比, 本发明实施例可以识别出执行速度慢的执行节点,使得主节点可以从识别出的 执行速度慢的执行节点中进一步选择出满足预设条件的执行节点进行关闭处理, 从而主节点在选择可用执行节点时可以避免选择执行任务慢的节点,进而可以 提高Hadoop集群整体性能,提高整体的数据处理执行效率。

附图说明

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

图1为本发明实施例提供的一种Hadoop集群性能优化方法流程图;

图2为本发明实施例提供的一种Hadoop集群性能优化方法中获取第一参数 信息的方法流程图;

图3为本发明实施例提供的另一种Hadoop集群性能优化方法流程图;

图4为本发明实施例提供的一种Hadoop集群节点状态识别方法流程图;

图5本发明实施例提供的一种Hadoop集群性能优化装置结构示意图;

图6为本发明实施例提供的一种Hadoop集群节点状态识别装置结构示意图。

具体实施方式

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

参见图1,本发明实施例提供一种Hadoop集群性能优化方法,应用于Hadoop 集群的主节点,该方法可以包括以下步骤:

S100:获取指定时间段内每个已完成作业中各个任务对应的状态信息;状 态信息包括与任务对应的执行节点名称、输入数据量和完成各任务的执行时长;

本发明实施例的执行主体为hadoop集群中的主节点,主节点在hadoop集群 中起到的作用是给各个执行节点分配任务,接收各个执行节点的状态信息等。 状态信息包括每个执行节点执行任务时的输入数据量、执行时长、执行节点的 名称等,任务包括map任务和reduce任务。

在本发明实施例中,为了对hadoop集群的性能进行提升,首先获取指定时 间段内每个已完成作业中各个任务对应的状态信息,以便通过对状态信息的分 析得到集群中执行节点的执行任务速度的特征。

为了得到最近时间段内hadoop集群的执行任务速度的特征,指定的时间段 可以是距离现在最近的一段时间,比如刚过去的一小时,获取刚过去的一小时 内所有已完成作业中各个任务对应的状态信息。

具体的,主节点主要通过jobtrack API,jobtracker历史数据文件或者 jobtracker web页面获取所有的状态信息。

需要说明的是,hadoop集群中的执行节点可以有很多个,因此可以同时处 理大量的任务。获取状态信息可以是根据hadoop集群管理员的设置周期性的进 行执行,也可以由管理员手动触发执行。

S200:根据在指定时间段内所有已完成作业中的每个任务的输入数据量和 执行时长,按照预设算法获得每个执行节点在指定时间段内的第一状态参数; 第一状态参数表示该执行节点在指定时间段内执行任务速度的快慢;

在本发明实施例中,由于作业之间存在的差异,有的作业处理起来比较容 易,任务执行速度就快,有的作业处理起来比较复杂,任务执行速度就慢,因 此只根据任务的执行时长不能准确筛选出因为执行节点的硬件、系统或者配置 原因出现的任务执行速度慢的执行节点。但是如果执行节点的硬件、系统或者 配置出现了问题,该执行节点会在每次处理任务时都比其他执行同样任务的执 行节点慢,为了准确反映出各个执行节点的执行任务速度,需要找到每次执行 任务时都比处理同样类型任务所需执行时长更长的执行节点,在本发明实施例 中按照预设算法获得了每个执行节点在指定时间段内的第一状态参数,第一状 态参数表示该执行节点在指定时间段内执行任务速度的快慢。

参见图2,具体的步骤S200可以包括步骤:

S201:根据获取的状态信息中的每个任务的输入数据量,去除每个作业中 输入数据量异常的任务;

在本发明实施例中,已完成作业的所有任务中,有一些任务可能因为数据 倾斜的原因,输入数据量会比其他任务的输入数据量更大,这样的任务在执行 时需要的执行时长也会更长,而且输入数据量和任务的执行时间并不会是一个 线性的增长,这种输入数据量异常的任务的执行时长会影响到对执行节点速度 快慢的判断,需要将这些任务去除。

具体地,任务去除方法可以包括:

判断已完成作业中的每个任务的输入数据量是否大于预设的输入数据量阈 值;

将输入数据量大于预设的输入数据量阈值的任务,确定为输入数据量异常 的任务;

去除所确定的输入数据量异常的任务。

需要说明的是,输入数据量阈值可以由本领域技术人员根据本领域的公知 常识进行设置,例如设置输入数据量阈值为正常输入数据量的3倍,本发明实 施例不对输入数据量阈值的具体取值进行限定。

S202:对剩余每个作业中的map任务按照执行时长进行排序;每个作业中 的reduce任务按照执行时长进行排序;

在去除输入数据量异常的任务后,为了准确反映出执行节点执行任务的速 度,对同一作业中的同样的任务的执行时长进行对比,每个作业中的map任务 按照执行时长进行排序;每个作业中的reduce任务按照执行时长进行排序。

具体地,可以是对每个作业中的map任务按照执行时长从长到短进行排序, 对每个作业中的reduce任务按照执行时长从长到短进行排序。这样排序靠前的 任务的执行节点都是在本次作业执行过程中执行速度较慢的节点。也可以按照 执行时长从短到长进行排序,这样,这样排序靠后的任务的执行节点都是在本 次作业执行过程中执行速度较慢的执行节点。

S203:按照map任务和reduce任务中执行时长从长到短,对预设百分比数 量的任务中每个任务对应的执行节点计一分;

在本发明实施例中,按照执行时长的从长到短获取预设百分比数量的任务, 对每个任务对应的执行节点都计一分,获得每个执行节点在指定时间段内的分 数。在同一作业的同类型任务执行过程中,执行时长排名靠前说明了执行节点 在执行该作业中的任务时的速度慢,但是不能确定该执行节点在执行其他作业 中的任务时也是慢速节点,因此需要对所有作业中的任务进行排序后获取各个 作业的各组任务中执行时长较长的执行节点进行计分,如果某执行节点的分数 很高,说明该执行节点总是执行任务时很慢,是一个慢速执行节点。

S300:根据各个执行节点的第一状态参数,确定在指定时间段内执行任务 速度最慢的一个或多个执行节点;

在本发明实施例中,得到的第一状态参数是执行节点的分数,执行节点的 分数越高,说明该执行节点的执行速度越慢。

具体地,可以采用以下方法确定在指定时间段内执行任务速度最慢的一个 或多个执行节点:

对各个执行节点的分数进行比较;

将分数最高的执行节点确定为执行任务速度慢的节点。

在这一具体实施方式中,如果某一个执行节点的分数远高于其他执行节点 的分数,可以直接确定分数最高的执行节点为执行速度最慢的执行节点。

如果几个执行节点的分数差不多,可以采用以下方法确定在指定时间段内 执行任务速度最慢的一个或多个执行节点:

对各个执行节点的分数计算出平均值和标准差;

判断各个执行节点的分数与平均值的差值是否在预设的差值阈值以上,

如果是,将该执行节点确定为执行速度慢的一个或多个执行节点。

在这一具体实施方式中,采用了统计检验的方法对执行节点的分数进行处 理。本领域的技术人员可以根据公知常识对差值阈值进行设置,比如设置差值 阈值为3个标准差。本发明实施例不对差值阈值的取值进行限定。最后确定出 的执行速度慢的执行节点可能为一个,可能为多个,也可能不存在。

在本发明实施例的另一具体实施方式中,如果集群中的执行节点存在性能 上的差别,例如是两种厂家提供的机器,机器本身性能上就存在差异,一种机 器执行任务速度快,一种机器执行任务速度慢。这时可以先采用机器学习分类 的方法对所有执行节点得到的分数进行聚类(一维的),比较得出分数较高的一 类,判断这一类中所有执行节点都是慢速执行节点,或者再对这一类的执行节 点的分数采用统计检验的方法确定执行速度慢的执行节点。

S400:从在指定时间段内执行任务速度最慢的一个或多个执行节点中,选 择出满足预设条件的执行节点进行关闭处理。

在主节点上可以长期进行记录各个执行节点在执行各种作业的各个任务时 的任务执行时长,经过统计可以得到各个执行节点平均任务执行速度的经验值, 可以将该经验值设置为任务执行速度阈值。

具体地,在确定出执行速度最慢的一个或多个执行节点后,根据执行速度 最慢的一个或多个执行节点的输入数据量和执行时长,得到执行速度最慢的一 个或多个执行节点的平均任务执行速度;

判断平均执行任务速度是否超过预设平均执行任务速度阈值;

如果是,选择超过预设平均执行任务速度阈值的执行节点进行关闭处理。

本发明实施例提供的技术方案,通过获取指定时间段内每个已完成作业中 各个任务对应的状态信息,根据获取的状态信息获得每个执行节点在指定时间 段内的第一状态参数,该第一状态参数表示该执行节点在指定时间段内执行任 务速度的快慢,根据各个执行节点的第一状态参数可以找到在多次执行任务过 程中都需要较长执行任务时间的执行节点,确定出执行速度最慢的一个或多个 执行节点,并选择出满足预设条件的执行节点进行关闭处理。与现有技术相比, 本发明实施例可以识别出执行速度慢的执行节点,使得主节点可以从识别出的 执行速度慢的执行节点中进一步选择出满足预设条件的执行节点进行关闭处理, 从而主节点在选择可用执行节点时可以避免选择执行任务慢的节点,进而可以 提高Hadoop集群整体性能,提高整体的数据处理执行效率。

在上述实施例的基础上,参见图3,本发明实施例在确定指定时间段内执行 任务速度最慢的一个或多个执行节点后,还包括以下步骤:

S500:发送通知给hadoop集群的管理员,通知包括一个或多个执行节点的 平均任务执行时长和执行节点名称。

本发明实施例可以在确定出执行速度慢的执行节点后,将确定出的慢速执 行节点的执行节点名称和各个慢速执行节点的平均任务执行时长发送邮件或短 信通知给管理员,管理员可以根据通知的内容对主节点进行设置,可以手动关 闭执行任务速度慢的节点,或者对主节点进行设置后,使得主节点可以根据设 置自动关闭执行任务速度慢的节点。

参见图4,本发明实施例提供一种Hadoop集群中节点状态识别方法,应用 于Hadoop集群的主节点,该方法可以包括以下步骤:

S401:获取指定时间段内每个已完成作业中各个任务对应的状态信息;状 态信息包括与任务对应的执行节点名称、输入数据量和完成各任务的执行时长;

S402:针对每个执行节点,根据在指定时间段内所有已完成作业中的每个 任务的输入数据量和执行时长,按照预设算法获得每个执行节点在指定时间段 内的第一状态参数;第一状态参数表示该执行节点在指定时间段内执行任务速 度的快慢;

S403:根据各个执行节点的第一状态参数,确定在指定时间段内执行任务 速度最慢的一个或多个执行节点。

本发明实施例提供的技术方案,通过获取指定时间段内每个已完成作业中 各个任务对应的状态信息,根据获取的状态信息获得每个执行节点在指定时间 段内的第一状态参数,该第一状态参数表示该执行节点在指定时间段内执行任 务速度的快慢,根据各个执行节点的第一状态参数可以找到在多次执行任务过 程中都需要较长执行任务时间的执行节点,确定出执行速度最慢的一个或多个 执行节点。与现有技术相比,本发明实施例可以识别出执行速度慢的执行节点。

参见图5,与上述方法实施例对应,本发明实施例提供一种Hadoop集群性 能优化装置,应用于Hadoop集群主节点,该装置包括:

第一获取模块501,用于获取指定时间段内每个已完成作业中各个任务对应 的状态信息;状态信息包括与任务对应的执行节点名称、输入数据量和完成各 任务的执行时长;

第二获取模块502,用于针对每个执行节点,根据第一获取模块获取的在指 定时间段内所有已完成作业中的每个任务的输入数据量和执行时长,按照预设 算法获得每个执行节点在指定时间段内的第一状态参数;第一状态参数表示该 执行节点在指定时间段内执行任务速度的快慢;

确定模块503,用于根据第二获取模块获取的各个执行节点的第一状态参数, 确定在指定时间段内执行任务速度最慢的一个或多个执行节点;

优化模块504,用于从确定模块确定的在指定时间段内执行任务速度最慢的 一个或多个执行节点中,选择出满足预设条件的执行节点进行关闭处理。

较佳地,第二获取模块可以包括:

去除单元,用于去除每个作业中所述输入数据量异常的任务;

排序单元,用于对所述去除单元去除异常任务后剩余每个作业中的map任 务按照执行时长进行排序;每个作业中的reduce任务按照执行时长进行排序;

计分单元,按照map任务和reduce任务中执行时长从长到短,对预设百分 比数量的任务中每个任务对应的执行节点名称计一分;

获取单元,用于获得每个执行节点在指定时间段内的分数作为所述执行节 点的第一状态参数;

相应地,所述确定模块,包括:

比较单元,用于对所述各个执行节点的分数进行比较;

第一确定单元,用于将所述比较单元比较得出的分数最高的执行节点确定 为执行任务速度慢的节点;

或者,所述确定模块,包括:

第一计算单元,用于对各个执行节点的分数计算出平均值和标准差;

第一判断单元,用于判断各个执行节点的分数与所述平均值的差值是否在 预设的差值阈值以上,

第二确定单元,用于在所述第一判断单元在判断出有执行节点的分数与所 述平均值的差值在预设的差值阈值以上时,将所述执行节点确定为执行速度慢 的节点。

较佳地,去除单元可以包括:

判断子单元,用于判断已完成作业中的每个任务的输入数据量是否大于预 设的输入数据量阈值;

去除子单元,用于在判断子单元判断输入数据量大于预设的输入数据阈值 的情况下,将与输入数据量对应的任务去除。

进一步的,优化模块包括:

第二计算单元,用于根据执行速度最慢的一个或多个执行节点的输入数据 量和执行时长,得到执行速度最慢的一个或多个执行节点的平均执行任务速度;

判断单元,用于判断平均执行任务速度是否超过预设平均执行任务速度阈 值;

优化单元,用于在所述判断单元在判断出平均执行任务速度超过预设平均 执行任务速度阈值时,选择超过预设平均执行任务速度阈值的执行节点进行关 闭处理。

进一步的,上述装置还包括:

发送模块,用于根据确定模块发送通知给Hadoop集群的管理员,通知包括: 执行速度最慢的一个或多个执行节点的执行节点名称,执行速度最慢的一个或 多个执行节点的平均任务执行时长。

本发明实施例提供的技术方案,通过第一获取模块获取指定时间段内每个 已完成作业中各个任务对应的状态信息,第二获取模块根据获取的状态信息获 得每个执行节点在指定时间段内的第一状态参数,该第一状态参数表示该执行 节点在指定时间段内执行任务速度的快慢,确定模块根据各个执行节点的第一 状态参数可以找到在多次执行任务过程中都需要较长执行任务时间的执行节点, 确定出执行速度最慢的一个或多个执行节点,优化模块选择出满足预设条件的 执行节点进行关闭处理。与现有技术相比,本发明实施例可以识别出执行速度 慢的执行节点,使得主节点可以从确定出执行速度慢的执行节点中进一步选择 出满足预设条件的执行节点进行关闭处理,从而主节点在选择可用执行节点时 可以避免选择执行任务慢的节点,进而可以提高Hadoop集群整体性能,提高整 体的数据处理执行效率。

如图6所示,本发明实施例提供一种Hadoop集群节点状态识别装置,应用 于Hadoop集群主节点,该装置包括:

第一获取模块601,用于获取指定时间段内每个已完成作业中各个任务对应 的状态信息;状态信息包括与任务对应的执行节点名称、输入数据量和完成各 任务的执行时长;

第二获取模块602,用于针对每个执行节点,根据第一获取模块获取的在指 定时间段内所有已完成作业中的每个任务的输入数据量和执行时长,按照预设 算法获得每个执行节点在指定时间段内的第一状态参数;第一状态参数表示该 执行节点在指定时间段内执行任务速度的快慢;

识别模块603,用于根据第二获取模块获取的各个执行节点的第一状态参数, 识别在指定时间段内执行任务速度最慢的一个或多个执行节点。

本发明实施例提供的技术方案,通过第一获取模块获取指定时间段内每个 已完成作业中各个任务对应的状态信息,第二获取模块根据获取的状态信息获 得每个执行节点在指定时间段内的第一状态参数,该第一状态参数表示该执行 节点在指定时间段内执行任务速度的快慢,确定模块根据各个执行节点的第一 状态参数可以找到在多次执行任务过程中都需要较长执行任务时间的执行节点, 确定出执行速度最慢的一个或多个执行节点。与现有技术相比,本发明实施例 可以识别出执行速度慢的执行节点,使得主节点可以从确定出执行速度慢的执 行节点中进一步选择出满足预设条件的执行节点进行关闭处理,从而主节点在 选择可用执行节点时可以避免选择执行任务慢的节点,进而可以提高Hadoop集 群整体性能,提高整体的数据处理执行效率。

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

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相 似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。 尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较 简单,相关之处参见方法实施例的部分说明即可。

本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤 是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读 取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。 凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在 本发明的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号