[发明专利]一种Hadoop集群管理任务的分发方法和系统有效
申请号: | 201510347803.9 | 申请日: | 2015-06-19 |
公开(公告)号: | CN104915260B | 公开(公告)日: | 2018-05-25 |
发明(设计)人: | 彭毅 | 申请(专利权)人: | 北京搜狐新媒体信息技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 100084 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 子阶段 分发 调度周期 任务分发 管理 排序 并行执行 调度单元 任务规划 筛选条件 依次处理 依赖关系 组件节点 细粒度 预设 吞吐量 并行 扫描 调度 规划 | ||
1.一种Hadoop集群管理任务的分发方法,其特征在于,包括:
接收来自用户的管理操作命令,并验证所述管理操作命令的有效性;
当所述管理操作命令有效时,解析所述管理操作命令,以生成管理任务集合;所述管理任务集合至少包括一个管理任务;
根据预先定义的Hadoop组件的依赖关系对所述管理任务集合内的管理任务进行阶段规划;其中,在阶段规划中,将能够并行执行的管理任务规划到同一阶段,将执行有先后顺序的管理任务规划到不同阶段;
依次处理每一阶段中的管理任务,将同一阶段内配往同一目标组件节点的管理任务规划为一个子阶段,形成<管理操作、阶段、子阶段>的三级层级的规划数据;
当进入一个调度周期后,扫描当前待调度的子阶段,并依据<管理操作、阶段、子阶段>的层级对所有待调度的子阶段进行排序;
根据预设筛选条件按照排序后的子阶段从前到后的顺序依次判断当前子阶段是否适合在当前调度周期内进行任务分发;如果当前子阶段适合在当前调度周期内进行任务分发,并且该当前子阶段所属管理操作之前分发的管理任务没有失败,则将当前子阶段中的所有管理任务进行分发;
所述预设筛选条件为:当前子阶段的调度不会破坏其所属管理操作各阶段执行的有序性;当前子阶段中任务配往的目标组件节点在当前调度周期内没有任务安排。
2.根据权利要求1所述的方法,其特征在于,如果当前子阶段适合在当前调度周期内进行任务分发,并且该子阶段所述管理操作之前分发的任务存在失败,则取消该管理操作的后续子阶段的任务分发,并标记失败。
3.根据权利要求1或2所述的方法,其特征在于,所述根据预先定义的Hadoop组件的依赖关系对所述管理任务集合内的管理任务进行阶段规划,具体包括:
根据所述管理任务集合内的管理任务生成每个管理任务对应的初始DAG节点,所述DAG节点包括管理任务属性、入度属性和被依赖集属性;所述初始DAG节点的入度为0,被依赖集为空集;
根据预先定义的Hadoop组件的依赖关系赋予所述管理任务集合内的每一管理任务对应的被依赖集和入度属性,生成有向无环图节点即DAG节点,以得到DAG图;所述入度属性表示管理任务所依赖的其它管理任务的数量,所述被依赖集内含有直接依赖当前管理任务的那些管理任务;
将DAG图中入度为0的DAG节点对应的管理任务划入第一阶段;删除属于第一阶段的DAG节点,并修改DAG图中的剩余DAG节点的入度属性,以完成DAG图的更新;将更新后的DAG图中入度为0的DAG节点对应的管理任务划入第二阶段;依次类推直至所有DAG节点对应的管理任务均规划到相应的阶段。
4.根据权利要求1或2所述的方法,其特征在于,所述预先定义的Hadoop组件的依赖关系为二维Hadoop组件的依赖关系,所述二维Hadoop组件的依赖关系不仅定义了组件之间的依赖关系,还定义了组件在操作类型上的依赖关系。
5.根据权利要求1或2所述的方法,其特征在于,任务分发后,还包括:
获取来自组件节点的心跳信息;根据所述心跳信息更新规划数据;
其中,所述心跳信息包括当前组件节点、组件节点上服务以及服务组件的状态信息,所述心跳信息还包括该当前组件节点的任务执行情况。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京搜狐新媒体信息技术有限公司,未经北京搜狐新媒体信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510347803.9/1.html,转载请声明来源钻瓜专利网。