一种Hadoop集群管理任务的分发方法和系统技术方案

技术编号:12057085 阅读:99 留言:0更新日期:2015-09-16 20:08
本发明专利技术公开了一种Hadoop集群管理任务的分发方法及装置。所述方法首先根据Hadoop组件的依赖关系对管理任务进行阶段规划,然后依次处理每一阶段中的管理任务,将同一阶段内配往同一组件节点的管理任务规划为一个子阶段;然后当进入一个调度周期后,扫描当前待调度的所有子阶段,并对其进行排序。最后根据预设筛选条件按照排序后的子阶段从前到后的顺序依次判断当前子阶段是否适合在当前调度周期内进行任务分发。在该分发方法中,子阶段作为最小的调度单元,并且同一个子阶段内部以及同一父阶段内的子阶段之间能够并行执行。本发明专利技术能够实现在更细粒度上并行分发任务。而且,本发明专利技术提供的方法能够提高任务分发的吞吐量,进而提高Hadoop集群管理的效率。

【技术实现步骤摘要】

本专利技术涉及计算机集群
,尤其涉及一种Hadoop集群管理任务的分发方 法和系统。
技术介绍
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。Hadoop主要包括 HDFS、MapReduce2、YARN、Hbase等核心服务,每个服务又包括多个服务组件,如HBase服务 包括 HBaseMaster、Region Server 等组件。 Hadoop集群是指部署有Hadoop相关服务组件的一组计算机,这些计算机通过组 件间的相互协作对外提供服务。 Hadoop集群包括HDFS、MapReduce2、YARN、Hbase等核心服务,每个服务又包括多 个服务组件,如HBase服务包括HBaseMaster、Region Server等组件。这些组件离散分布 于集群节点中,如此,就为多个组件的并发管理提供了可能,然而,由于Hadoop组件间存在 一定的依赖关系,因此就要求针对部分组件的并发管理具有一定的时序安排。如何在保证 组件依赖关系的基础上最大限度地并发管理集群中的组件,是Hadoop集群领域中的研宄 热点。 目前,Hadoop集群管理任务分发方法大多基于组件的依赖关系定义多个管理任务 进行阶段规划,即〈管理操作、阶段〉二级定义,阶段在逻辑上保证组件依赖关系的有效性, 同时也是最小的调度单元。其判别条件为:只要待筛选的阶段中存在某个任务其所派发的 目的节点已有其它阶段中的任务,即放弃该阶段在本次调度周期内的调度。因此,在使用该 判别条件筛选时,阶段间互斥率较高,导致每个调度周期可并发的阶段数量较少,进而导致 任务并发吞吐不高。
技术实现思路
有鉴于此,本专利技术提供了一种Hadoop集群管理任务的分发方法和系统,以提高任 务分发的吞吐量。 为了解决上述技术问题,本专利技术采用了如下技术方案: 一种Hadoop集群管理任务的分发方法,包括: 接收来自用户的管理操作命令,并验证所述管理操作命令的有效性;当所述管理操作命令有效时,解析所述管理操作命令,以生成管理任务集合;所述 管理任务集合至少包括一个管理任务; 根据预先定义的Hadoop组件的依赖关系对所述管理任务集合内的管理任务进行 阶段规划;其中,在阶段规划中,将能够并行执行的管理任务规划到同一阶段,将执行有先 后顺序的管理任务规划到不同阶段; 依次处理每一阶段中的管理任务,将同一阶段内配往同一目标组件节点的管理任 务规划为一个子阶段,形成〈管理操作、阶段、子阶段〉的三级层级的规划数据; 当进入一个调度周期后,扫描当前待调度的子阶段,并依据〈管理操作、阶段、子 阶段〉的层级对所有待调度的子阶段进行排序; 根据预设筛选条件按照排序后的子阶段从前到后的顺序依次判断当前子阶段是 否适合在当前调度周期内进行任务分发;如果当前子阶段适合在当前调度周期内进行任务 分发,并且该当前子阶段所属管理操作之前分发的管理任务没有失败,则将当前子阶段中 的所有管理任务进行分发; 所述预设筛选条件为:当前子阶段的调度不会破坏其所属管理操作各阶段执行的 有序性;当前子阶段中任务配往的目标组件节点在当前调度周期内没有任务安排。 可选地,如果当前子阶段适合在当前调度周期内进行任务分发,并且该子阶段所 述管理操作之前分发的任务存在失败,则取消该管理操作的后续子阶段的任务分发,并标 记失败。 可选地,所述根据预先定义的Hadoop组件的依赖关系对所述管理任务集合内的 管理任务进行阶段规划,具体包括: 根据所述管理任务集合内的管理任务生成每个管理任务对应的初始DAG节点,所 述DAG节点包括管理任务属性、入度属性和被依赖集属性;所述初始DAG节点的入度为0, 被依赖集为空集; 根据预先定义的Hadoop组件的依赖关系赋予所述管理任务集合内的每一管理任 务对应的被依赖集和入度属性,生成有向无环图节点即DAG节点,以得到DAG图;所述入度 属性表示管理任务所依赖的其它管理任务的数量,所述被依赖集内含有直接依赖当前管理 任务的那些管理任务; 将DAG图中入度为0的DAG节点对应的管理任务划入第一阶段;删除属于第一阶 段的DAG节点,并修改DAG图中的剩余DAG节点的入度属性,以完成DAG图的更新;将更新 后的DAG图中入度为0的DAG节点对应的管理任务划入第二阶段;依次类推直至所有DAG 节点对应的管理任务均规划到相应的阶段。 可选地,所述预先定义的Hadoop组件的依赖关系为二维Hadoop组件的依赖关系, 所述二维Hadoop组件的依赖关系不仅定义了组件之间的依赖关系,还定义了组件在操作 类型上的依赖关系。 可选地,任务分发后,还包括: 获取来自组件节点的心跳信息;根据所述心跳信息更新规划数据; 其中,所述心跳信息包括当前组件节点、组件节点上服务以及服务组件的状态信 息,所述心跳信息还包括该当前组件节点的任务执行情况。 一种Hadoop集群管理任务的分发装置,包括: 接收验证单元,用于接收来自用户的管理操作命令,并验证所述管理操作命令的 有效性; 命令解析单元,用于当所述管理操作命令有效时,解析所述管理操作命令,以生成 管理任务集合;所述管理任务集合至少包括一个管理任务; 阶段规划单元,用于根据预先定义的Hadoop组件的依赖关系对所述管理任务集 合内的管理任务进行阶段规划;其中,在阶段规划中,将能够并行执行的管理任务规划到同 一阶段,将执行有先后顺序的管理任务规划到不同阶段; 子阶段规划单元,用于依次处理每一阶段中的管理任务,将同一阶段内配往同一 目标组件节点的管理任务规划为一个子阶段,形成〈管理操作、阶段、子阶段〉的三级层级 的规划数据; 子阶段排序单元,用于当进入一个调度周期后,扫描当前待调度的子阶段,并依据 〈管理操作、阶段、子阶段〉的层级对所有待调度的子阶段进行排序; 判断单元,用于根据预设筛选条件按照排序后的子阶段从前到后的顺序依次判断 当前子阶段是否适合在当前调度周期内进行任务分发;所述预设筛选条件为:当前子阶段 的调度不会破坏其所属管理操作各阶段执行的有序性;当前子阶段中任务配往的目标组件 节点在当前调度周期内没有任务安排; 任务分发单元,用于当当前子阶段适合在当前调度周期内进行任务分发,并且该 当前子阶段所属管理操作之前分发的管理任务没有失败时,将当前子阶段中的所有管理任 务进行分发。 可选地,所述装置还包括: 取消任务分发和标记失败单元,用于当当前子阶段适合在当前调度周期内进行任 务分发,并且该子阶段所述管理操作之前分发的任务存在失败时,取消该管理操作的后续 子阶段的任务分发,并标记失败。 可选地,所述阶段规划单元包括: 初始DAG节点生成子单元,用于根据所述管理任务集合内的管理任务生成每个管 理任务对应的初始DAG节点,所述DAG节点包括管理任务属性、入度属性和被依赖集属性; 所述初始DAG节点的入度为0,被依赖集为空集; DAG节点生成子单元,用于根据预先定义的Hadoop组件的依赖关系赋予所述管 理任务集合内的每一管理任务对应的被依赖集和入度属性,生成有向无环图节点即DAG节 点,以得到DAG图;所述入度属性表示管理任务所依赖的其它管理任务的数量,所述被依赖 集内含有直接依赖当前管理任务的那些管理任务; 阶段规划子单元,用本文档来自技高网
...
一种Hadoop集群管理任务的分发方法和系统

【技术保护点】
一种Hadoop集群管理任务的分发方法,其特征在于,包括:接收来自用户的管理操作命令,并验证所述管理操作命令的有效性;当所述管理操作命令有效时,解析所述管理操作命令,以生成管理任务集合;所述管理任务集合至少包括一个管理任务;根据预先定义的Hadoop组件的依赖关系对所述管理任务集合内的管理任务进行阶段规划;其中,在阶段规划中,将能够并行执行的管理任务规划到同一阶段,将执行有先后顺序的管理任务规划到不同阶段;依次处理每一阶段中的管理任务,将同一阶段内配往同一目标组件节点的管理任务规划为一个子阶段,形成<管理操作、阶段、子阶段>的三级层级的规划数据;当进入一个调度周期后,扫描当前待调度的子阶段,并依据<管理操作、阶段、子阶段>的层级对所有待调度的子阶段进行排序;根据预设筛选条件按照排序后的子阶段从前到后的顺序依次判断当前子阶段是否适合在当前调度周期内进行任务分发;如果当前子阶段适合在当前调度周期内进行任务分发,并且该当前子阶段所属管理操作之前分发的管理任务没有失败,则将当前子阶段中的所有管理任务进行分发;所述预设筛选条件为:当前子阶段的调度不会破坏其所属管理操作各阶段执行的有序性;当前子阶段中任务配往的目标组件节点在当前调度周期内没有任务安排。...

【技术特征摘要】

【专利技术属性】
技术研发人员:彭毅
申请(专利权)人:北京搜狐新媒体信息技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1