CN109284324A - 基于Apache Oozie框架处理大数据的流程任务的调度装置 - Google Patents
基于Apache Oozie框架处理大数据的流程任务的调度装置 Download PDFInfo
- Publication number
- CN109284324A CN109284324A CN201811204278.5A CN201811204278A CN109284324A CN 109284324 A CN109284324 A CN 109284324A CN 201811204278 A CN201811204278 A CN 201811204278A CN 109284324 A CN109284324 A CN 109284324A
- Authority
- CN
- China
- Prior art keywords
- task
- big data
- oozie
- module
- frame processing
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于Apache Oozie框架处理大数据的流程任务的调度装置,包括客户端(前端)和服务器端(后端),所述客户端包括界面操作模块,所述服务器端包括服务端操作模块;其中,所述界面操作模块包括任务提交、任务操作、和任务监控三个模块;所述前端界面操作模块用于与用户操作的入口对接;所述服务器端包括控制层(Controller),业务层(Service)和存储层。
Description
技术领域
本发明涉及数据处理技术领域,尤其是一种基于Apache Oozie框架的大数据处理过程的流程任务的调度装置。
背景技术
Apache Oozie一个基于工作流引擎的开源框架,是由Cloudera公司贡献给Apache的,它能够提供对Hadoop MapReduce和Pig Jobs的数据处理任务的调度与协调。Oozie需要部署到Java Servlet容器中运行。作为一个开源的工作流引擎,它提供了任务提交,任务启动,任务杀死,任务挂起,任务恢复,任务监控,任务重跑,任务调度等功能,Oozie官网提供了一个简单的查询界面。其架构设计如图1所示,Oozie提供了三种流程引擎
1,workflow:顺序执行流程节点,Oozie客户端提交流程描述文件到服务器端,Oozie服务器端解析流程文件,按照流程顺序执行节点。
2,Coordinator:协调器引擎,OOzie使用Coordinator来管理workflow,通过预定义的时间或基于数据条件来定时的启动workflow。
3,Bundle:oozie使用Bundle任务来将多个Coordinator组织成一个集合,使用buddle可以更方便的管理多个Coordinator协调器。
Oozie的最小执行单元是节点,包括Hadoop map-reduce,Hadoop file system,Pig,SSH,HTTP,eMail and Oozie sub-workflow等动作节点和start,end,kill,fork,join,decision等控制节点,同时Oozie还支持用户自定义节点,Oozie使用有向无环图(DAG)将各个流程节点组织成工作流,oozie对节点和工作流的描述都使用xml文档来描述,使用oozie开发,运维大数据的现状如图2所示。对于开发过程:
第一步:用户需要在本地使用xml编写流程任务,由于用户使用到不同的流程节点需要参考不同的schema约束,不同的流程节点的属性配置差异较大,一个工作流的文件结构会相对复杂。例举一个只有五个流程节点的workflow.xml文件:
第二步:用户需要将写好的流程文件使用hdfs工具上传到hdfs上。
第三步:用户需要使用Oozie客户端,通常是执行shell命令提交任务。
第四步:使用官网提供的ext界面(需要自己下载ext依赖)或则命令行查看任务的运行状态和运行日志。
大数据的实际开发场景中,数据流通常需要根据业务来划分模块,通常数据流都会按照,数据采集,数据清洗,数据分析,数据汇总,数据展示等流程执行;这些数据流大多是按照指定的频率(按照分钟,小时,天,周,月等)定时执行,而且执行循序上会有数据的依赖关系,因此本质上处理数据开发流程就是非常复杂的。而oozie使用xml来定义流程和协作器,这样用户每开发一个定时任务需要按照oozie xml schema定义的文档至少提供
coordinator.xml,workflow.xml两个文件,在workflow.xml中用户使用到不同的流程节点需要参考不同的schema约束,不同的流程节点的属性配置差异较大,使得流程开发过程变得复杂而且容易出错,特别是当流程任务达到一定规模时,如果需要改变流程执行的节点,用户需要重新从hdfs上下载流程描述文件,然后修改流程文件,重新上传文件,如果是coordinator.xml文件修改,还需要重新启动协调器任务,整个过程非常复杂。
oozie使用xml文件来描述工作流,由于大数据开发通常会涉及到多层次,多业务线的数据流,数据流之间有着非常复杂的依赖关系,使用现有的流程引擎无法对工作流按业务和层次分组,也无法直接查看多个工作流之间的依赖关系。
另外,oozie客户端虽然提供了任务提交,任务启动,任务杀死,任务挂起,任务恢复,任务监控,任务重跑,任务调度等命令行操作,当任务数量多了之后,所有的操作需要在服务器的命令行操作,对于任务日常运维来说,这种方式显然是不可取的。
发明内容
本发明的目的在于提供一种基于Apache Oozie框架处理大数据的流程任务的调度装置,能够大大提高开发和处理大数据的流程任务的速度。
本发明的技术方案为,一种基于Apache Oozie框架处理大数据的流程任务的调度装置,包括客户端(前端)和服务器端(后端),所述客户端包括界面操作模块,所述服务器端包括服务端操作模块;其中,所述界面操作模块包括任务提交、任务操作、和任务监控三个模块;
所述前端界面操作模块用于与用户操作的入口对接;所述服务器端包括控制层(Controller),业务层(Service)和存储层;
其中,所述控制层用于调用所述Service层,根据用户提交的不同参数向所述Service层发送请求;
所述Service层包括任务生成、任务操作、任务监控三个模块,所述Service层用于整个大数据处理过程的核心业务处理,并将用户的最终请求发送到OOzieServer端,由OOzieServer端最后执行任务;所述任务监控模块用于定时查询统计任务的状态,将任务的运行情况统计分析生成任务监控报表,在任务监控界面展示,如果有任务执行失败,所述任务监控模块发出邮件提示提交人。
所述存储层包括MYSQL存储模块和HDFS存储模块,所述MYSQL存储模块用于存储所述流程任务的元数据;所述HDFS存储模块用于存储所述流程任务的定义文件;所有生成的任务的定义描述文件都存储到HDFS上,所有任务运行的元数据,包括任务运行的结果记录都存储到所述Mysql数据库。
进一步地,所述服务器端的任务操作模块包括启动、挂起、修改、暂停、恢复、重跑、杀死、删除、和提交单元。
进一步地,所述界面操作模块包括任务分组,任务依赖查询,和批量处理单元。
优选的,所述控制层采用springMVC。
优选的,所述任务生成模块使用Velocity作为模板。
优选的,所述客户端使用ElementUI+VUE.js+ECHART.js实现。
优选的,所述服务器端使用SpringBoot+SpringMVC+Spring+Mybatis对OOzie进行二次封装。
优选的,所述客户端和服务器端使用MAVEN作为构建打包工具。
本发明的各个模块之间的协调工作关系如下:
用户在任务提交界面,选择需要的流程节点并填写表单属性如果是Coordinate任务用户需要指定任务的输入输出路径,任务的运行频率等关键属性,用户提交表单到springMVC控制层,然后调用到任务生成模块,任务生成模块使用Velocity作为模板,根据不同的任务类型生成不同的Action定义文档,最终将所有的节点处理完成合并文件生成oozie工作流需要的workflow.xml,如果是Coordinate任务还需要生成coordinate.xml接着调用HDFS存储模块API将生成的文件上传到HDFS上,如果用户在提交任务的时候选中立即运行,控制层会接着调用任务操作模块,任务操作模块调用OOzieClient向OozieServer模块发送提交命令,由OOzieServer启动任务,同时修改任务的状态并且将任务的元数据存储到Mysql数据库。
对于任务操作,用户只需要在界面选中任务列表,然后选中不同的操作按钮,通过Ajax请求到控制台,控制台会接着调用任务操作模块,任务操作模块调用OOzieClient向OozieServer模块发送提交命令,由OOzieServer启动任务,同时修改任务的状态并且修改Mysql中对应的任务数据的状态。
对于任务监控,前端使用Ajax每五分中轮训任务监控模块,任务监控模块读取Mysql数据库中任务运行的数据,通过统计分组按不同的维度排序,将结果返回到前端动态的渲染报表,如果有任务执行失败则发送邮件通知任务提交人。
本发明的有益效果在于,对于开发过程:
本发明只需要用户在界面上填写表单,很多属性都是下拉选择,当用户提交表单会自动生成流程定义文件workflow.xml并且保存到hdfs上,当用户需要修改流程文件的时候,也可以直接在线编辑修改。任务开发,提交可以直接在界面完成,不需要再手动的调用hdfs api和oozie客户端命令。
对于运维过程:
本发明提供了丰富的界面操作,而且将支持任务分组,任务依赖查询,对所有的操作都添加了批量处理,这样即使任务规模扩大时也能够快速的批量操作任务,使得大规模的任务运维变得简单高效。
附图说明
图1为本发明的背景技术Apache Oozie框架的架构示意图;
图2为本发明的背景技术Apache Oozie框架开发和运维时的流程任务调度示意图;
图3为本发明的调度方法的架构总体示意图;
图4为本发明的一个实施例的操作界面示意图。
具体实施方式
下面结合附图和实施例进一步说明本发明,如图3和图4所示的实施例,
一种基于Apache Oozie框架处理大数据的流程任务的调度装置,包括客户端(前端)和服务器端(后端),所述客户端包括界面操作模块,所述服务器端包括服务端操作模块;其中,所述界面操作模块包括任务提交、任务操作、和任务监控三个模块;
所述前端界面操作模块用于与用户操作的入口对接;所述服务器端包括控制层(Controller),业务层(Service)和存储层;
其中,所述控制层用于调用所述Service层,根据用户提交的不同参数向所述Service层发送请求;
所述Service层包括任务生成、任务操作、任务监控三个模块,所述Service层用于整个大数据处理过程的核心业务处理,并将用户的最终请求发送到OOzieServer端,由OOzieServer端最后执行任务;所述任务监控模块用于定时查询统计任务的状态,将任务的运行情况统计分析生成任务监控报表,在任务监控界面展示,如果有任务执行失败,所述任务监控模块发出邮件提示提交人。
所述存储层包括MYSQL存储模块和HDFS存储模块,所述MYSQL存储模块用于存储所述流程任务的元数据;所述HDFS存储模块用于存储所述流程任务的定义文件;所有生成的任务的定义描述文件都存储到HDFS上,所有任务运行的元数据,包括任务运行的结果记录都存储到所述Mysql数据库。
进一步地,所述服务器端的任务操作模块包括启动、挂起、修改、暂停、恢复、重跑、杀死、删除、和提交单元。
进一步地,所述界面操作模块包括任务分组,任务依赖查询,和批量处理单元。
优选的,所述控制层采用springMVC。所述任务生成模块使用Velocity作为模板。所述客户端使用ElementUI+VUE.js+ECHART.js实现。所述服务器端使用SpringBoot+SpringMVC+Spring+Mybatis对OOzie进行二次封装。所述客户端和服务器端使用MAVEN作为构建打包工具。
本发明的各个模块之间的协调工作关系如下:
用户在任务提交界面,选择需要的流程节点并填写表单属性如果是Coordinate任务用户需要指定任务的输入输出路径,任务的运行频率等关键属性,用户提交表单到springMVC控制层,然后调用到任务生成模块,任务生成模块使用Velocity作为模板,根据不同的任务类型生成不同的Action定义文档,最终将所有的节点处理完成合并文件生成oozie工作流需要的workflow.xml,如果是Coordinate任务还需要生成coordinate.xml接着调用HDFS存储模块API将生成的文件上传到HDFS上,如果用户在提交任务的时候选中立即运行,控制层会接着调用任务操作模块,任务操作模块调用OOzieClient向OozieServer模块发送提交命令,由OOzieServer启动任务,同时修改任务的状态并且将任务的元数据存储到Mysql数据库。
对于任务操作,用户只需要在界面选中任务列表,然后选中不同的操作按钮,通过Ajax请求到控制台,控制台会接着调用任务操作模块,任务操作模块调用OOzieClient向OozieServer模块发送提交命令,由OOzieServer启动任务,同时修改任务的状态并且修改Mysql中对应的任务数据的状态。
对于任务监控,前端使用Ajax每五分中轮训任务监控模块,任务监控模块读取Mysql数据库中任务运行的数据,通过统计分组按不同的维度排序,将结果返回到前端动态的渲染报表,如果有任务执行失败则发送邮件通知任务提交人。
以上的描述仅仅涉及本发明的一些具体实施方式,任何本领域的技术人员基于本发明的精神所做的替换或改进均应为本发明的保护范围所涵盖,本发明的保护范围应以权利要求书为准。
Claims (8)
1.一种基于Apache Oozie框架处理大数据的流程任务的调度装置,包括客户端(前端)和服务器端(后端),所述客户端包括界面操作模块,所述服务器端包括服务端操作模块;其中,所述界面操作模块包括任务提交、任务操作、和任务监控三个模块;
所述前端界面操作模块用于与用户操作的入口对接;所述服务器端包括控制层(Controller),业务层(Service)和存储层;
其中,所述控制层用于调用所述Service层,根据用户提交的不同参数向所述Service层发送请求;
所述Service层包括任务生成、任务操作、任务监控三个模块,所述Service层用于整个大数据处理过程的核心业务处理,并将用户的最终请求发送到OOzieServer端,由OOzieServer端最后执行任务;所述任务监控模块用于定时查询统计任务的状态,将任务的运行情况统计分析生成任务监控报表,在任务监控界面展示,如果有任务执行失败,所述任务监控模块发出邮件提示提交人。
所述存储层包括MYSQL存储模块和HDFS存储模块,所述MYSQL存储模块用于存储所述流程任务的元数据;所述HDFS存储模块用于存储所述流程任务的定义文件;所有生成的任务的定义描述文件都存储到HDFS上,所有任务运行的元数据,包括任务运行的结果记录都存储到所述Mysql数据库。
2.根据权利要求1所述的基于Apache Oozie框架处理大数据的流程任务的调度装置,其特征在于,所述服务器端的任务操作模块包括启动、挂起、修改、暂停、恢复、重跑、杀死、删除、和提交单元。
3.根据权利要求1或2所述的基于Apache Oozie框架处理大数据的流程任务的调度装置,其特征在于,所述界面操作模块包括任务分组,任务依赖查询,和批量处理单元。
4.根据权利要求1或2所述的基于Apache Oozie框架处理大数据的流程任务的调度装置,其特征在于,所述控制层采用springMVC。
5.根据权利要求1或2所述的基于Apache Oozie框架处理大数据的流程任务的调度装置,其特征在于,所述任务生成模块使用Velocity作为模板。
6.根据权利要求1或2所述的基于Apache Oozie框架处理大数据的流程任务的调度装置,其特征在于,所述客户端使用ElementUI+VUE.js+ECHART.js实现。
7.根据权利要求1或2所述的基于Apache Oozie框架处理大数据的流程任务的调度装置,其特征在于,所述服务器端使用SpringBoot+SpringMVC+Spring+Mybatis对OOzie进行二次封装。
8.根据权利要求1或2所述的基于Apache Oozie框架处理大数据的流程任务的调度装置,其特征在于,所述客户端和服务器端使用MAVEN作为构建打包工具。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811204278.5A CN109284324A (zh) | 2018-10-16 | 2018-10-16 | 基于Apache Oozie框架处理大数据的流程任务的调度装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811204278.5A CN109284324A (zh) | 2018-10-16 | 2018-10-16 | 基于Apache Oozie框架处理大数据的流程任务的调度装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109284324A true CN109284324A (zh) | 2019-01-29 |
Family
ID=65177737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811204278.5A Pending CN109284324A (zh) | 2018-10-16 | 2018-10-16 | 基于Apache Oozie框架处理大数据的流程任务的调度装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109284324A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111694650A (zh) * | 2020-06-17 | 2020-09-22 | 科技谷(厦门)信息技术有限公司 | 一种多维数据作业调度*** |
CN111708751A (zh) * | 2019-12-27 | 2020-09-25 | 山东鲁能软件技术有限公司 | 一种基于Hue实现数据加载的方法,***,设备及可读存储介质 |
CN113220438A (zh) * | 2021-06-02 | 2021-08-06 | 中国邮政储蓄银行股份有限公司 | 执行作业的***、测试批量作业的方法与装置 |
CN113326117A (zh) * | 2021-07-15 | 2021-08-31 | 中国电子科技集团公司第十五研究所 | 一种任务调度方法、装置及设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101478431A (zh) * | 2009-02-10 | 2009-07-08 | 浪潮通信信息***有限公司 | 一种使用可视化流程进行管理的任务调度*** |
CN101694709A (zh) * | 2009-09-27 | 2010-04-14 | 华中科技大学 | 一种面向服务的分布式工作流管理*** |
CN103577256A (zh) * | 2013-11-21 | 2014-02-12 | 五八同城信息技术有限公司 | 分布式定时任务调度*** |
CN104536809A (zh) * | 2014-11-26 | 2015-04-22 | 上海瀚之友信息技术服务有限公司 | 一种基于客户端、服务器***的分布式定时任务调度*** |
US9172608B2 (en) * | 2012-02-07 | 2015-10-27 | Cloudera, Inc. | Centralized configuration and monitoring of a distributed computing cluster |
CN105446812A (zh) * | 2016-01-04 | 2016-03-30 | 中国南方电网有限责任公司 | 一种多任务调度配置方法 |
CN105867907A (zh) * | 2016-03-23 | 2016-08-17 | 沈阳师范大学 | 去除业务耦合性的JSS多层Web开发框架设计方法 |
CN108037919A (zh) * | 2017-12-01 | 2018-05-15 | 北京博宇通达科技有限公司 | 一种基于web的可视化大数据工作流配置方法及*** |
-
2018
- 2018-10-16 CN CN201811204278.5A patent/CN109284324A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101478431A (zh) * | 2009-02-10 | 2009-07-08 | 浪潮通信信息***有限公司 | 一种使用可视化流程进行管理的任务调度*** |
CN101694709A (zh) * | 2009-09-27 | 2010-04-14 | 华中科技大学 | 一种面向服务的分布式工作流管理*** |
US9172608B2 (en) * | 2012-02-07 | 2015-10-27 | Cloudera, Inc. | Centralized configuration and monitoring of a distributed computing cluster |
CN103577256A (zh) * | 2013-11-21 | 2014-02-12 | 五八同城信息技术有限公司 | 分布式定时任务调度*** |
CN104536809A (zh) * | 2014-11-26 | 2015-04-22 | 上海瀚之友信息技术服务有限公司 | 一种基于客户端、服务器***的分布式定时任务调度*** |
CN105446812A (zh) * | 2016-01-04 | 2016-03-30 | 中国南方电网有限责任公司 | 一种多任务调度配置方法 |
CN105867907A (zh) * | 2016-03-23 | 2016-08-17 | 沈阳师范大学 | 去除业务耦合性的JSS多层Web开发框架设计方法 |
CN108037919A (zh) * | 2017-12-01 | 2018-05-15 | 北京博宇通达科技有限公司 | 一种基于web的可视化大数据工作流配置方法及*** |
Non-Patent Citations (1)
Title |
---|
万川梅: "《云技术应用》", 31 August 2013, 成都:西南交通大学出版社 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708751A (zh) * | 2019-12-27 | 2020-09-25 | 山东鲁能软件技术有限公司 | 一种基于Hue实现数据加载的方法,***,设备及可读存储介质 |
CN111708751B (zh) * | 2019-12-27 | 2024-02-02 | 山东鲁能软件技术有限公司 | 一种基于Hue实现数据加载的方法,***,设备及可读存储介质 |
CN111694650A (zh) * | 2020-06-17 | 2020-09-22 | 科技谷(厦门)信息技术有限公司 | 一种多维数据作业调度*** |
CN113220438A (zh) * | 2021-06-02 | 2021-08-06 | 中国邮政储蓄银行股份有限公司 | 执行作业的***、测试批量作业的方法与装置 |
CN113326117A (zh) * | 2021-07-15 | 2021-08-31 | 中国电子科技集团公司第十五研究所 | 一种任务调度方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10901791B2 (en) | Providing configurable workflow capabilities | |
US11086688B2 (en) | Managing resource allocation in a stream processing framework | |
US11288142B2 (en) | Recovery strategy for a stream processing system | |
US11296961B2 (en) | Simplified entity lifecycle management | |
US11615084B1 (en) | Unified data processing across streaming and indexed data sets | |
US11886440B1 (en) | Guided creation interface for streaming data processing pipelines | |
US10592282B2 (en) | Providing strong ordering in multi-stage streaming processing | |
US9965330B2 (en) | Maintaining throughput of a stream processing framework while increasing processing load | |
US9842000B2 (en) | Managing processing of long tail task sequences in a stream processing framework | |
JP6523354B2 (ja) | 改善されたインターフェースを備えるステートマシンビルダー及び状態非依存イベントの処理 | |
CN109284324A (zh) | 基于Apache Oozie框架处理大数据的流程任务的调度装置 | |
US8812752B1 (en) | Connector interface for data pipeline | |
CN107103064B (zh) | 数据统计方法及装置 | |
CN111837121A (zh) | 利用可执行逻辑来处理结构化数据项的基于键的日志记录 | |
CN112149838A (zh) | 实现自动构建模型的方法、装置、电子设备和存储介质 | |
CN109471709A (zh) | 基于Apache Oozie框架处理大数据的流程任务的调度方法 | |
CN116841758A (zh) | 工作流任务处理方法、装置、计算机设备和存储介质 | |
Yahia | A language-based approach for web service composition | |
Alodib | An analytical Approach for the Enhancement of Services Provided using Big Data Technique. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190129 |
|
RJ01 | Rejection of invention patent application after publication |