CN103399787B - 一种基于Hadoop云计算平台的MapReduce作业流式调度方法及调度系统 - Google Patents

一种基于Hadoop云计算平台的MapReduce作业流式调度方法及调度系统 Download PDF

Info

Publication number
CN103399787B
CN103399787B CN201310339780.8A CN201310339780A CN103399787B CN 103399787 B CN103399787 B CN 103399787B CN 201310339780 A CN201310339780 A CN 201310339780A CN 103399787 B CN103399787 B CN 103399787B
Authority
CN
China
Prior art keywords
job
tree
node
under
failure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310339780.8A
Other languages
English (en)
Other versions
CN103399787A (zh
Inventor
李成金
郑驰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING TEAMSUN SOFTWARE TECHNOLOGY Co Ltd
Beijing Teamsun Technology Co Ltd
Original Assignee
BEIJING TEAMSUN SOFTWARE TECHNOLOGY Co Ltd
Beijing Teamsun Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING TEAMSUN SOFTWARE TECHNOLOGY Co Ltd, Beijing Teamsun Technology Co Ltd filed Critical BEIJING TEAMSUN SOFTWARE TECHNOLOGY Co Ltd
Priority to CN201310339780.8A priority Critical patent/CN103399787B/zh
Publication of CN103399787A publication Critical patent/CN103399787A/zh
Application granted granted Critical
Publication of CN103399787B publication Critical patent/CN103399787B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于Hadoop云计算平台的MapReduce作业流式调度方法及调度系统,其通过将源数据进行实时汇聚、存储至Hadoop云平台;为作业启动指定相应的策略,如定时准时启动或者等此粒度对应时间段内的数据全部汇聚完毕;给单步、多步的作业指定对应的启动脚本,启动系统,通过程序高效、智能的控制作业的运行。通过本发明,可以给每个粒度的作业指定单独的策略,控制不同粒度的作业按照不同的策略保证其安全性;通过“流”的思想控制作业分步、快速的完成。

Description

一种基于Hadoop云计算平台的MapReduce作业流式调度方法及调度系统
技术领域
本发明涉及云计算领域,特别涉及一种基于Hadoop云计算平台MapReduce作业流式调度方法及调度系统。
背景技术
为了更为清楚的理解本发明,首先对几个名词进行以下解释:
Hadoop云平台:一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。
MapReduce计算框架:基于HDFS的并行处理大数据集的软件框架,与HDFS构成Hadoop的两大核心组件。可以通过Hadoop提供的原生脚本提交Jar包(可运行的Java软件包),MapReduce计算框架会在整个Hadoop集群中运行此Jar包,简称运行MR Job,同时返回一个MR Job ID,根据此ID可以查询对应的MR Job状态、停止此MR Job。
协调系统——ZooKeeper:是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
当前对于MapReduce作业的调度主要是利用Linux操作系统的Crontab定时命令以及Hadoop原生脚本来进行作业调度。此方法虽然简单,但是最小粒度是分钟,同时不能为不同的作业指定不同的启动条件和需要多个MR Job才能完成的作业的智能、高效调度,扩展性非常差,同时不能有效的对Job进行应用级 别的监控,即作业失败后无法智能处理失败任务,可靠性不足。
发明内容
鉴于现有技术中存在的问题,本发明目的在于提供一种基于Hadoop云计算平台的MapReduce作业流式调度方法及调度系统,从而解决用户无法定制作业启动时机和需要多个MR Job的复杂应用无法智能高效调度问题。
根据本发明的一个方面,提供了一种基于Hadoop云计算平台的MapReduce作业流式调度方法,其特征在于包括以下步骤:
S1,在ZooKeeper上创建三棵“树”——准备树(prepare树)、工作树(working树)、失败树(failed树);在每棵树下为每个粒度创建一个节点,在working树和failed树的粒度节点下创建步骤节点;
S2:向外提供接口,让用户自定义Job的启动条件,主程序根据对应的实现去监控HDFS上的数据,当满足用户定义的条件时,在prepare树下建立一个作业元数据信息节点,指定MR Job需要的HDFS数据路径;
S3:主程序子线程监控prepare树下的节点,当发现有节点时,根据节点中的路径信息构造MR Job启动脚本,启动MR Job,记录启动时间、MR Job的ID和启动脚本信息到作业元数据信息节点,并将prepare树下的节点移动到working树对应的目录下;
S4:主程序每隔一段时间,遍历working树下的所有节点,根据MR Job ID获取MR Job的状态,如果失败,则失败次数加1,然后判断失败次数是否超过给定阈值,如果超过阈值,将此节点移动到failed树下,否则根据启动脚本重启此MR Job;如果成功,则根据作业性质的不同进行不同的处理;最后根据系统时间和MR Job的启动时间,判断MR Job是否超时,如果超时,则重启此MR Job,失败次数加1。
优选的,上述步骤S4中所述根据作业性质的不同进行不同的处理,包括以下步骤:
1)根据应用的复杂度不同,将作业分为单步MR Job作业和多步MR Job作业,同时在主程序内部为多步MR Job实例一个容器对象,其中包含着每一步对应的MR Job的启动脚本;
2)如果一个单步MR Job作业成功执行,则记录日志并删除作业信息节点;否则,当其中一个步骤完成后,MR Job容器对象中的计数器加1,然后根据计数器启动下一个MR Job,当所有步骤完成后,计数器归0,删除成功的作业信息节点。
根据本发明的另一方面,提供了一种基于Hadoop云计算平台的MapReduce作业流式调度系统,其特征在于包括:
树创建模块,用于在ZooKeeper上创建三棵“树”——准备树(prepare树)、工作树(working树)、失败树(failed树);在每棵树下为每个粒度创建一个节点,在working树和failed树的粒度节点下创建步骤节点;
Prepare树构造模块,用于向外提供接口,让用户自定义Job的启动条件,主程序根据对应的实现去监控HDFS上的数据,当满足用户定义的条件时,在prepare树下建立一个作业元数据信息节点,指定MR Job需要的HDFS数据路径;
Working树转移模块,用于主程序子线程监控prepare树下的节点,当发现有节点时,根据节点中的路径信息构造MR Job启动脚本,启动MR Job,记录启动时间、MR Job的ID和启动脚本信息到作业元数据信息节点,并将prepare树下的节点移动到working树对应的目录下;
Working树执行模块,用于主程序每隔一段时间,遍历working树下的所有节点,根据MR Job ID获取MR Job的状态,如果失败,则失败次数加1,然后判断失败次数是否超过给定阈值,如果超过阈值,将此节点移动到failed树下,否则根据启动脚本重启此MR Job;如果成功,则根据作业性质的不同进行不同的处理;最后根据系统时间和MR Job的启动时间,判断MR Job是否超时,如果超时,则重启此MR Job,失败次数加1。
优选的,上述Working树执行模块中所述根据作业性质的不同进行不同的处理,通过以下模块实现:
MR Job分类模块,用于根据应用的复杂度不同,将作业分为单步MR Job作业和多步MR Job作业,同时在主程序内部为多步MR Job实例一个容器对象,其中包含着每一步对应的MR Job的启动脚本;
MR Job调度模块,用于如果一个单步MR Job作业成功执行,则记录日志并删除作业信息节点;否则,当其中一个步骤完成后,MR Job容器对象中的计 数器加1,然后根据计数器启动下一个MR Job,当所有步骤完成后,计数器归0,删除成功的作业信息节点。
通过本发明,可以给每个粒度的作业指定单独的策略,控制不同粒度的作业按照不同的策略保证其安全性;通过“流”的思想控制作业分步、快速的完成。
附图说明
图1例示了本发明实施例在ZooKeeper上创建三棵“树”的具体结构;
图2例示了本发明实施例一种基于Hadoop云计算平台的MapReduce作业流式调度系统的结构图。
具体实施方式
为使本发明的上述目的、特征和优点更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明中,作业信息对象包含Hadoop MR Job使用的数据、Job的启动脚本、Job的ID、Job的启动时间、Job的步骤数、Job的失败次数等。
根据本发明的一个实施例,基于Hadoop云计算平台的MapReduce作业流式调度方法包括以下步骤:
S1,在ZooKeeper上创建三棵“树”——准备树(prepare树)、工作树(working树)、失败树(failed树);在每棵树下为每个粒度创建一个节点,在working树和failed树的粒度节点下创建步骤节点;
图1例示了在ZooKeeper上创建三棵“树”的具体结构。
S2:向外提供接口,让用户自定义Job的启动条件,主程序根据对应的实现去监控HDFS上的数据,当满足用户定义的条件时,在prepare树下建立一个作业元数据信息节点,指定MR Job需要的HDFS数据路径;
通过步骤S2,实现了根据定制作业启动时机的功能。
S3:主程序子线程监控prepare树下的节点,当发现有节点时,根据节点中的路径信息构造MR Job启动脚本,启动MR Job,记录启动时间、MR Job的ID和启动脚本信息到作业元数据信息节点,并将prepare树下的节点移动到working树对应的目录下;
S4:主程序每隔一段时间,遍历working树下的所有节点,根据MR Job ID获取MR Job的状态,如果失败,则失败次数加1,然后判断失败次数是否超过 给定阈值,如果超过阈值,将此节点移动到failed树下,否则根据启动脚本重启此MR Job;如果成功,则根据作业性质的不同进行不同的处理;最后根据系统时间和MR Job的启动时间,判断MR Job是否超时,如果超时,则重启此MR Job,失败次数加1。
优选的,上述步骤S4中所述根据作业性质的不同进行不同的处理,包括以下步骤:
1)根据应用的复杂度不同,将作业分为单步MR Job作业和多步MR Job作业,同时在主程序内部为多步MR Job实例一个容器对象,其中包含着每一步对应的MR Job的启动脚本;
2)如果一个单步MR Job作业成功执行,则记录日志并删除作业信息节点;否则,当其中一个步骤完成后,MR Job容器对象中的计数器加1,然后根据计数器启动下一个MR Job,当所有步骤完成后,计数器归0,删除成功的作业信息节点。
上述整个过程就像是“流水”一样自动运行,因而可称为“流”式MR Job调度。
本发明可完全以计算机程序的方式实现,因而通过与方法一一对应的方式,本发明还可构造出相应的系统结构。本发明还包括一种基于Hadoop云计算平台的MapReduce作业流式调度系统,如附图2所示,其特征在于包括:
树创建模块,用于在ZooKeeper上创建三棵“树”——准备树(prepare树)、工作树(working树)、失败树(failed树);在每棵树下为每个粒度创建一个节点,在working树和failed树的粒度节点下创建步骤节点;
图1例示了在ZooKeeper上创建三棵“树”的具体结构。
Prepare树构造模块,用于向外提供接口,让用户自定义Job的启动条件,主程序根据对应的实现去监控HDFS上的数据,当满足用户定义的条件时,在prepare树下建立一个作业元数据信息节点,指定MR Job需要的HDFS数据路径;
Working树转移模块,用于主程序子线程监控prepare树下的节点,当发现有节点时,根据节点中的路径信息构造MR Job启动脚本,启动MR Job,记录启动时间、MR Job的ID和启动脚本信息到作业元数据信息节点,并将prepare树下的节点移动到working树对应的目录下;
Working树执行模块,用于主程序每隔一段时间,遍历working树下的所有节点,根据MR Job ID获取MR Job的状态,如果失败,则失败次数加1,然后判断失败次数是否超过给定阈值,如果超过阈值,将此节点移动到failed树下,否则根据启动脚本重启此MR Job;如果成功,则根据作业性质的不同进行不同的处理;最后根据系统时间和MR Job的启动时间,判断MR Job是否超时,如果超时,则重启此MR Job,失败次数加1。
优选的,上述Working树执行模块中所述根据作业性质的不同进行不同的处理,通过以下模块实现:
MR Job分类模块,用于根据应用的复杂度不同,将作业分为单步MR Job作业和多步MR Job作业,同时在主程序内部为多步MR Job实例一个容器对象,其中包含着每一步对应的MR Job的启动脚本;
MR Job调度模块,用于如果一个单步MR Job作业成功执行,则记录日志并删除作业信息节点;否则,当其中一个步骤完成后,MR Job容器对象中的计数器加1,然后根据计数器启动下一个MR Job,当所有步骤完成后,计数器归0,删除成功的作业信息节点。
通过本发明,可以给每个粒度的作业指定单独的策略,控制不同粒度的作业按照不同的策略保证其安全性;通过“流”的思想控制作业分步、快速的完成。
以上是对本发明的优选实施例进行的详细描述,但本领域的普通技术人员应该意识到,在本发明的范围内和精神指导下,各种改进、添加和替换都是可能的,例如使用可实现同种功能目的的算法、使用不同的编程语言(如C、C++、Java等)实现等。这些都在本发明的权利要求所限定的保护范围内。

Claims (2)

1.一种基于Hadoop云计算平台的MapReduce作业流式调度方法,其特征在于包括以下步骤:
S1,在ZooKeeper上创建三棵“树”——准备树、工作树、失败树;在每棵树下为每个粒度创建一个节点,在工作树和失败树的粒度节点下创建步骤节点;
S2:向外提供接口,让用户自定义Job的启动条件,主程序根据对应的实现去监控分布式文件系统HDFS上的数据,当满足用户定义的条件时,在准备树下建立一个作业元数据信息节点,指定MR Job需要的HDFS数据路径,其中,MR Job为MapReduce计算框架在整个Hadoop集群中运行的Jar包;
S3:主程序子线程监控准备树下的节点,当发现有节点时,根据节点中的路径信息构造MR Job启动脚本,启动MR Job,记录启动时间、MR Job的ID和启动脚本信息到作业元数据信息节点,并将准备树下的节点移动到工作树对应的目录下;
S4:主程序每隔一段时间,遍历工作树下的所有节点,根据MR Job的ID获取MR Job的状态,如果失败,则失败次数加1,然后判断失败次数是否超过给定阈值,如果超过阈值,将此节点移动到失败树下,否则根据启动脚本重启此MR Job;如果成功,则根据作业性质的不同进行不同的处理;最后根据系统时间和MR Job的启动时间,判断MR Job是否超时,如果超时,则重启此MR Job,失败次数加1;
上述步骤S4中所述根据作业性质的不同进行不同的处理,包括以下步骤:
1)根据应用的复杂度不同,将作业分为单步MR Job作业和多步MR Job作业,同时在主程序内部为多步MR Job实例一个容器对象,其中包含着每一步对应的MR Job的启动脚本;
2)如果一个单步MR Job作业成功执行,则记录日志并删除作业信息节点;否则,当其中一个步骤完成后,MR Job容器对象中的计数器加1,然后根据计数器启动下一个MR Job,当所有步骤完成后,计数器归0,删除成功的作业信息节点。
2.一种基于Hadoop云计算平台的MapReduce作业流式调度系统,其特征在于包括:
树创建模块,用于在ZooKeeper上创建三棵“树”——准备树、工作树、失败树;在每棵树下为每个粒度创建一个节点,在工作树和失败树的粒度节点下创建步骤节点;
Prepare树构造模块,用于向外提供接口,让用户自定义Job的启动条件,主程序根据对应的实现去监控分布式文件系统HDFS上的数据,当满足用户定义的条件时,在准备树下建立一个作业元数据信息节点,指定MR Job需要的HDFS数据路径,其中,MR Job为MapReduce计算框架在整个Hadoop集群中运行的Jar包;
Working树转移模块,用于主程序子线程监控准备树下的节点,当发现有节点时,根据节点中的路径信息构造MR Job启动脚本,启动MR Job,记录启动时间、MR Job的ID和启动脚本信息到作业元数据信息节点,并将准备树下的节点移动到工作树对应的目录下;
Working树执行模块,用于主程序每隔一段时间,遍历工作树下的所有节点,根据MR Job的ID获取MR Job的状态,如果失败,则失败次数加1,然后判断失败次数是否超过给定阈值,如果超过阈值,将此节点移动到失败树下,否则根据启动脚本重启此MR Job;如果成功,则根据作业性质的不同进行不同的处理;最后根据系统时间和MR Job的启动时间,判断MR Job是否超时,如果超时,则重启此MR Job,失败次数加1;
上述工作树执行模块中所述根据作业性质的不同进行不同的处理,通过以下模块实现:
MR Job分类模块,用于根据应用的复杂度不同,将作业分为单步MR Job作业和多步MR Job作业,同时在主程序内部为多步MR Job实例一个容器对象,其中包含着每一步对应的MR Job的启动脚本;
MR Job调度模块,用于如果一个单步MR Job作业成功执行,则记录日志并删除作业信息节点;否则,当其中一个步骤完成后,MR Job容器对象中的计数器加1,然后根据计数器启动下一个MR Job,当所有步骤完成后,计数器归0,删除成功的作业信息节点。
CN201310339780.8A 2013-08-06 2013-08-06 一种基于Hadoop云计算平台的MapReduce作业流式调度方法及调度系统 Active CN103399787B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310339780.8A CN103399787B (zh) 2013-08-06 2013-08-06 一种基于Hadoop云计算平台的MapReduce作业流式调度方法及调度系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310339780.8A CN103399787B (zh) 2013-08-06 2013-08-06 一种基于Hadoop云计算平台的MapReduce作业流式调度方法及调度系统

Publications (2)

Publication Number Publication Date
CN103399787A CN103399787A (zh) 2013-11-20
CN103399787B true CN103399787B (zh) 2016-09-14

Family

ID=49563421

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310339780.8A Active CN103399787B (zh) 2013-08-06 2013-08-06 一种基于Hadoop云计算平台的MapReduce作业流式调度方法及调度系统

Country Status (1)

Country Link
CN (1) CN103399787B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103970660A (zh) * 2014-05-19 2014-08-06 浪潮电子信息产业股份有限公司 一种基于crontab的整机系统稳定性的自动化测试方法
CN104461721B (zh) * 2014-12-11 2017-11-14 北京国双科技有限公司 工作流的调用方法和装置
CN104899284B (zh) * 2015-06-05 2018-09-04 北京京东尚科信息技术有限公司 一种基于元数据驱动调度系统的方法及装置
CN106790403B (zh) * 2016-11-29 2022-01-25 中兴通讯股份有限公司 实现移动云计算中间平台的方法及实现分布式的方法
CN108491255B (zh) * 2018-02-08 2020-11-03 昆仑智汇数据科技(北京)有限公司 自助式MapReduce数据优化分配方法及系统
CN108874524A (zh) * 2018-06-21 2018-11-23 山东浪潮商用系统有限公司 大数据分布式任务调度系统
CN110399206B (zh) * 2019-06-19 2022-04-05 广东浩云长盛网络股份有限公司 一种基于云计算环境下idc虚拟化调度节能系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546247A (zh) * 2011-12-29 2012-07-04 华中科技大学 一种适用流式处理的大规模数据连续分析系统
CN102708088A (zh) * 2012-05-08 2012-10-03 北京理工大学 面向海量数据高性能计算的cpu/gpu协同处理方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9619291B2 (en) * 2009-12-20 2017-04-11 Yahoo! Inc. System and method for a task management library to execute map-reduce applications in a map-reduce framework
US9201690B2 (en) * 2011-10-21 2015-12-01 International Business Machines Corporation Resource aware scheduling in a distributed computing environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546247A (zh) * 2011-12-29 2012-07-04 华中科技大学 一种适用流式处理的大规模数据连续分析系统
CN102708088A (zh) * 2012-05-08 2012-10-03 北京理工大学 面向海量数据高性能计算的cpu/gpu协同处理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
给予模拟退火的Map Reduce调度算法;遆鸣 等;《计算机工程》;20121031;第38卷(第19期);45-48 *

Also Published As

Publication number Publication date
CN103399787A (zh) 2013-11-20

Similar Documents

Publication Publication Date Title
CN103399787B (zh) 一种基于Hadoop云计算平台的MapReduce作业流式调度方法及调度系统
US11184216B2 (en) State control method and apparatus
CN103778031B (zh) 一种云环境下的分布式系统多级故障容错方法
US7779298B2 (en) Distributed job manager recovery
CN113569987A (zh) 模型训练方法和装置
CN109783214A (zh) 任务调度控制系统
CN112549029A (zh) 一种基于行为树的机器人行为控制方法及装置
CN108134690B (zh) 网络业务部署流程控制方法、装置及系统
CN109144701A (zh) 一种任务流管理方法、装置、设备及系统
Veeraraghavan et al. Maelstrom: Mitigating datacenter-level disasters by draining interdependent traffic safely and efficiently
CN110569113A (zh) 分布式任务的调度方法及系统、计算机可读存储介质
CN111190732A (zh) 定时任务处理系统及方法、存储介质和电子设备
US20140195672A1 (en) Automated failure handling through isolation
CN113568707B (zh) 基于容器技术的海洋平台的计算机控制方法及系统
CN113687927A (zh) Flume任务调度配置方法、装置、设备及存储介质
CN109725916B (zh) 流处理的拓扑结构更新系统和方法
Theeten et al. Towards the optimization of a parallel streaming engine for telco applications
CN116400987B (zh) 持续集成方法、装置、电子设备及存储介质
CN111552494B (zh) 一种容器组的管理方法、设备、系统及介质
CN109426564A (zh) 一种it资源数据采集统一超时控制方法及系统
Bendjoudi et al. Fth-b&b: A fault-tolerant hierarchicalbranch and bound for large scaleunreliable environments
CN104360913B (zh) 用于计算机操作系统的监控模块
CN109495484B (zh) 一种智慧照明系统中Proactor模式的高并发通信方法及系统
CN107066366B (zh) 面向物联网的复杂事件处理引擎状态监控与灾难恢复方法
EP3629616B1 (en) Data interaction method, device and equipment

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant