大数据的任务调度方法和系统与流程

文档序号:17535883发布日期:2019-04-29 13:58阅读:536来源:国知局
大数据的任务调度方法和系统与流程

本发明涉及大数据任务调度管理技术领域,更具体的说,涉及一种大数据任务调度方法及系统。



背景技术:

在大数据的业务应用中,随着业务指标的迭代,而使其日趋复杂化的时候,管理大数据的相关应用会变成一件头疼的事情,如:作业的依赖调度、任务的运行情况监控、异常问题的排查等,这些问题会使得我们日常的工作变得复杂。

在大数据分析系统中,有一些脚本或执行单元需要在特定的时间启动,有的甚至需要在某些条件符合后才进行,这种情况下只靠人工很难实现,一些系统也提供了一些定时任务的配置,但是这种配置管理起来比较麻烦,有些还必须要侵入到执行机的系统当中,带来很大的隐患。



技术实现要素:

为了克服现有技术的不足,本发明的目的之一在于提供一种大数据的任务调度方法,其结合大数据场景调度、分配、执行及不同数据类型的独特特征,突出分类型、多触发、策略调起、血缘依赖等特点,进行大数据内部生态的构建,通过大数据任务调度,根据不同任务类型按照不同策略进行大数据任务调度管理。

本发明的目的之二在于提供一种大数据的任务调度系统,为了很好解决人工配置管理的问题,更多结合大数据场景调度、分配、执行及不同数据类型的独特特征,突出分类型、多触发、策略调起、血缘依赖等特点,进行大数据内部生态的构建,通过大数据任务调度,根据不同任务类型按照不同策略进行大数据任务调度管理。

本发明的目的之一采用如下技术方案实现:

一种大数据的任务调度方法,其包括以下步骤:

根据任务类型创建任务模板;

选择任务模板以及任务调度服务编号创建任务,形成配置文件,创建的任务包括任务名称、任务内容以及任务执行周期,所述任务内容通过kv值的方式配置,通过kv文件格式建立任务之间的依赖关系;

读取所述任务,生成任务示例,获取任务执行过程信息。

进一步地,所述根据任务类型创建任务模板,包括:

设置模板名称,或/和自动生成模板id;

生成模板数据项,根据任务类型对每个模板数据项输入对应的数据项值及属性。

进一步地,所述选择任务模板以及任务调度服务编号创建任务,包括:

创建任务名称,选择调度类型和任务执行周期;

创建任务,根据任务类型选择任务模板,通过kv值的方式配置任务内容;通过kv文件格式建立任务之间的依赖关系。

进一步地,所述读取所述任务,生成任务示例,获取任务执行过程信息,包括:

根据所述任务实例生成任务执行列表;

对所述任务执行列表进行监控,当任务满足触发条件时,执行所述任务。

进一步地,所述根据所述任务实例生成任务执行列表,包括:

读取所述配置文件,获取任务检查的间隔时间和任务生成时间范围;

找出下一次执行时间和当前时间之间间隔在任务生成时间范围内的所有任务状态为待检查任务和作业执行时间,所述待检查任务为未生成任务执行列表的任务;

根据所述待检查任务的任务名称、任务内容以及任务执行周期生成任务执行列表,所述任务执行列表包括任务名称、任务执行时间和任务优先级;

更新所述待检查任务的状态,将所述待检查任务的状态更新为任务作业已生成;

所述对所述任务执行列表进行监控,当任务满足触发条件时,执行所述任务,包括:

根据任务检查的间隔时间检测出待检查任务,以生成任务执行列表;

以预设间隔循环检查所述任务执行列表中的任务执行时间,如果当前时间满足任务执行时间,则:

创建任务执行子线程,根据任务内容的任务类型调用不同的任务类型模块,读取任务内容;对任务内容的参数进行分解,生成任务实例,根据所述任务实例执行目标任务;所述目标任务为当前时间满足任务执行时间的任务。

本发明的目的之二采用如下技术方案实现:

一种大数据的任务调度系统,包括:

任务模板创建模块,用于根据任务类型创建任务模板;

任务调度管理模块,用于选择任务模板以及任务调度服务编号创建任务,形成配置文件,创建的任务包括任务名称、任务内容以及任务执行周期,所述任务内容通过kv值的方式配置,通过kv文件格式建立任务之间的依赖关系;

任务执行模块,用于读取所述任务,生成任务示例,获取任务执行过程信息。

进一步地,所述任务模板创建模块包括:

设置单元,用于设置模板名称,或/和自动生成模板id;

第一生成单元,用于生成模板数据项,根据任务类型对每个模板数据项输入对应的数据项值及属性。

进一步地,所述任务调度管理模块包括:

第一创建单元,用于创建任务名称,选择调度类型和任务执行周期;

第二创建单元,用于创建任务,根据任务类型选择任务模板,通过kv值的方式配置任务内容;通过kv文件格式建立任务之间的依赖关系。

进一步地,所述任务执行模块包括:

第二生成单元,用于根据所述任务实例生成任务执行列表;

触发单元,用于对所述任务执行列表进行监控,当任务满足触发条件时,执行所述任务。

进一步地,所述第二生成单元包括:

读取子单元,用于读取所述配置文件,获取任务检查的间隔时间和任务生成时间范围;

检测子单元,用于找出下一次执行时间和当前时间之间间隔在任务生成时间范围内的所有任务状态为待检查任务和作业执行时间,所述待检查任务为未生成任务执行列表的任务;

第一生成子单元,用于根据所述待检查任务的任务名称、任务内容以及任务执行周期生成任务执行列表,所述任务执行列表包括任务名称、任务执行时间和任务优先级;

更新子单元,用于更新所述待检查任务的状态,将所述待检查任务的状态更新为任务作业已生成;

所述触发单元包括:

第二生成子单元,用于根据任务检查的间隔时间检测出待检查任务,以生成任务执行列表;

判断子单元,用于以预设间隔循环检查所述任务执行列表中的任务执行时间,如果当前时间满足任务执行时间,则:

执行子单元,用于创建任务执行子线程,根据任务内容的任务类型调用不同的任务类型模块,读取任务内容;对任务内容的参数进行分解,生成任务实例,根据所述任务实例执行目标任务;所述目标任务为当前时间满足任务执行时间的任务。

相比现有技术,本发明的有益效果在于:

1.定时的任务计划触发:根据不同的任务类型设置灵活的触发时间点(hourly/daily/weekly/monthly/yearly等),根据时间周期分解计算任务,尽可能的并行执行任务,缩短执行时间,增加任务执行的整体时间窗口。

2.任务之间的灵活依赖:可将任意一个任务作为自己的父任务进行依赖触发;任务执行之间能够互相依赖,前置任务失败,后续依赖任务不执行。

3.灵活多样的告警规则:任务失败能够及时有效的告警,方便运维人员维护。除了失败告警,也支持任务超时未完成、任务超时未开始等告警规则。

4.提供完善易用的web用户界面:用于用户配置、提交、查询、监控任务及任务的依赖关系。

5.系统具有完整的日志记录:收集并记录任务运行过程中产生的标准输出和标准错误,提供http访问,用户可通过访问任务对应的日志url来方便的访问任务运行日志。

附图说明

图1为本发明大数据的任务调度方法的流程图;

图2为本发明创建任务模板的流程图;

图3为本发明调度任务管理的流程图;

图4为本发明任务执行的流程图;

图5为本发明大数据的任务调度系统的结构框图。

具体实施方式

下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。

大数据的任务调度方法,通过构建大数据的任务调度平台(通过软件或/和硬件实现),在数据采集、数据清洗以及的数据分析的不同阶段,根据不同任务类型特征,按照不同任务调度特征,提供快速、高效、灵活的调度任务。请参照图1所示,其包括以下步骤:

110、根据任务类型创建任务模板。

为了更好的执行调度任务,根据任务类型自定义不同的任务模板,然后保存到数据库中,创建调度任务的时候可以调出任务模板供快递创建调度任务。

创建任务模板主要是根据不同的任务类型,按照不同的调度任务,配置不同的参数,解决手工重复配置调度任务的问题。任务模板包含了数据采集、数据清洗、数据分析等数据处理任务规则的定义,为数据采集、数据清洗、数据分析等创建任务的时候的参数,为任务的创建提供样板。创建任务模块的流程如图2所示,根据任务类型自定义不同的任务模板,然后保存到数据库中,创建调度任务的时候可以调出任务模板供选择。具体地,设置模板名称,或/和自动生成模板id;生成模板数据项,根据任务类型对每个模板数据项输入对应的数据项值及属性,模板数据项及其数据项值和属性构成了模板内容,再对模板状态进行输入,即创建的任务模板主要包括模板名称、模板内容、模板状态三个数据输入值和一个自动生成模板编号(模板id)。每一个任务模板即一个算子,算子是平台中最小的单位,每一个算子,承载了一个业务逻辑的执行,也就是映射了一次实际的操作,例如调起一次脚本的执行,做一次接口的调用,等等。在大数据的任务调度平台中,有多种类型的算子,这些算子的功能不同,适用性也不一样。

120、选择任务模板以及任务调度服务编号创建任务,形成配置文件,创建的任务包括任务名称、任务内容以及任务执行周期,所述任务内容通过kv值的方式配置,通过kv文件格式建立任务之间的依赖关系。

根据任务模板创建不同的调度任务,调度任务包括了调度名称、调度周期和调度类型以及调度的任务。本平台可根据不同的任务类型,设置各种任务的参数,实现不同的任务调度管理,在任务配置的过程中可以限定任务的执行服务器,根据不同任务对象进行分类,分服务器进行执行。任务调度管理主要根据数据采集、数据清洗、数据分析等不同的阶段,根据不同的模板设置不同的调度任务。每一个调度任务包含了一个或多个算子,我们可以从已经存在的算子中选择。这些算子可以单独或者组合来实现串行的效果,完成一个调度任务。

请参照图3所示,其实现的过程是:根据任务模板创建不同的调度任务,获取先前创建任务模板和初始化的任务调度信息表(在110步骤之前,要先初始化调度服务编号及服务名称,数据用于标识任务所属的服务)。选择相应的任务模板和任务调度服务编号,填写任务内容,任务调度计划等信息创建任务计划。

创建的任务(即调度任务)包括了任务名称、任务内容、任务执行周期等信息,该数据保存在数据库中,数据采集、数据清洗、数据分析模块中的任务调度程序进行读取,并按照设定的内容执行任务。从其功能来看,其可以支持数据采集、数据清洗、数据分析三个阶段的任务调度管理,并具有一定的扩展性,支持根据业务需要灵活配置其他调度任务。创建的任务采用基于spark的python脚本来处理,每一个任务对应的一个或多个python文件。平台定义了一种kv文件格式来建立任务之间的依赖关系,可将任意一个任务作为自己的父任务进行依赖触发;任务执行之间能够互相依赖,前置任务失败,后续依赖任务不执行。任务内容通过kv值的方式,可以配置不同类型的参数,配置灵活。设置任务执行周期可以使得任务执行过程采用时间周期的调度执行方法,可以一次灵活配置单次,周期性的任务,任务调度程序可以根据配置好的参数,定期或周期性执行任务,达到任务自动执行的目的。

130、读取所述任务,生成任务示例,获取任务执行过程信息。

其采用任务调度及任务执行脚本分离的方式,达到低耦合的目的,任务具体内容的修改,不会影响任务调度。

请参照图4所示,任务执行主要包括任务生成和监控、日志处理、历史数据处理三部分内容:

其中,任务生成和监控又包括:

a1、按照不同的任务类型生成执行任务列表。

读取系统配置文件,获取任务检查的间隔时间和任务生成时间范围。根据任务生成时间范围,找出下一次执行时间和当前时间之间间隔在任务生成时间范围内的所有任务状态为任务待检查任务和作业执行时间。生成任务执行计划表,任务执行计划表中包括任务编号、任务执行时间及任务优先级等。采集任务调度程序更新任务基本信息表的任务状态为任务作业已生成。

a2、对已经生成的计划任务列表进行监控。任务监控有两个功能,第一个功能,根据任务检查的间隔时间执行“任务执行列表生成功能”;第二个功能,每1秒(可以设置)循环检查《任务执行计划表》中的任务执行时间是否已生效,如果任务时间生效则执行“任务执行”。

a3、执行计划任务列表的调度任务。当调度任务满足触发条件时,任务执行模块创建任务执行子线程,读取任务内容执行任务,任务执行完成后,更新任务信息。任务执行模块首先读取任务中的任务内容,根据任务内容中的任务类型调用不同的任务类型模块,读取任务内容,分解参数,生成任务实例,执行任务。任务执行完成后,更新任务基本信息表中的最近一次运行时间、下一次运行时间、任务状态为未生成任务列表。调用历史数据管理模块,将任务和作业执行情况,写入到《任务执行记录表》和《作业执行记录表》。

历史数据处理主要是将任务执行记录写到任务执行历史数据表中,根据配置文件,管理各个阶段的历史文件的处理。

日志处理主要是写系统运行中的各种日志,使用公共代码中的日志类。

对于数据采集的任务调度管理,其主要包括结构化数据采集和网络数据采集。

结构化数据采集主要是采集数据库中的流水数据。通过任务调度程序进行任务调度、执行任务来完成数据采集。在调度程序的基础上配置sqoop任务,可实现结构化数据采集调度任务。

在创建任务的时候,根据业务需求,创建不同类型任务模板,实现数据抓取任务。所以结构化数据采集的就是在调度程序的基础上去配置sqoop任务。

网络爬虫的调度任务通过java调用python的spiders脚本进行运行,因此在网络爬虫的任务模板包含了python脚本的路径。所有任务模板的定义为:

{filepath:defaultvalue}

对于数据清洗和数据分析的任务调度管理:采用基于spark的python脚本来处理,每一个任务对应的一个或多个python文件。任务模板采用类似json文件格式的方式进行参数设置如下:

{pyfilepath:pathvalue}。

大数据的任务调度平台,通过预先定义各类任务模板,根据调用模板进行配置参数生成任务,然后调度程序通过时间周期获取任务信息,生成任务列表,并根据任务执行周期自动执行任务。其根据灵活的模板配置,创建调度任务,管理任务之间的依赖关系,支持大数据采集、清洗、分析的整个生命周期,解除了手工重复配置调度任务的麻烦,提供灵活、高效、稳定的调度任务管理,为整个大数据系统性能的提升提供了支撑。

大数据的任务调度是在进行数据etl过程中起到了总体的承上启下的角色,整个数据的生产、交付、消费都会贯穿其中,大数据任务调度管理需从任务调度特征展开,满足大数据使用的架构和业务场景的需求,打造一个高可用、高效率、灵活性的大数据调度平台。

大数据任务调度平台提供一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。大数据任务调度系统定义了一种kv文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪调度任务的配置、管理、监控等。

大数据任务调度平台能够接收用户提交的工作流,与元数据进行通信,保存调度任务的配置、依赖关系、运行历史、资源配置、告警配置等信息。并负责任务的统一配置维护、触发、调度、监控,执行用户提交的工作任务,实现工作流监控并存储所有工作流的信息、状态、日志等信息。

实施例二

一种大数据的任务调度系统,其为实施例一的大数据的任务调度方法的虚拟结构,请参照图5所示,其包括:

任务模板创建模块510,用于根据任务类型创建任务模板;

任务调度管理模块520,用于选择任务模板以及任务调度服务编号创建任务,形成配置文件,创建的任务包括任务名称、任务内容以及任务执行周期,所述任务内容通过kv值的方式配置,通过kv文件格式建立任务之间的依赖关系;

任务执行模块530,用于读取所述任务,生成任务示例,获取任务执行过程信息。

其中,任务模板创建模块510包括:

设置单元,用于设置模板名称,或/和自动生成模板id;

第一生成单元,用于生成模板数据项,根据任务类型对每个模板数据项输入对应的数据项值及属性。

任务调度管理模块520包括:

第一创建单元,用于创建任务名称,选择调度类型和任务执行周期;

第二创建单元,用于创建任务,根据任务类型选择任务模板,通过kv值的方式配置任务内容;通过kv文件格式建立任务之间的依赖关系。

任务执行模块530包括:

第二生成单元,用于根据所述任务实例生成任务执行列表;

触发单元,用于对所述任务执行列表进行监控,当任务满足触发条件时,执行所述任务。

进一步地,所述第二生成单元包括:

读取子单元,用于读取所述配置文件,获取任务检查的间隔时间和任务生成时间范围;

检测子单元,用于找出下一次执行时间和当前时间之间间隔在任务生成时间范围内的所有任务状态为待检查任务和作业执行时间,所述待检查任务为未生成任务执行列表的任务;

第一生成子单元,用于根据所述待检查任务的任务名称、任务内容以及任务执行周期生成任务执行列表,所述任务执行列表包括任务名称、任务执行时间和任务优先级;

更新子单元,用于更新所述待检查任务的状态,将所述待检查任务的状态更新为任务作业已生成;

所述触发单元包括:

第二生成子单元,用于根据任务检查的间隔时间检测出待检查任务,以生成任务执行列表;

判断子单元,用于以预设间隔循环检查所述任务执行列表中的任务执行时间,如果当前时间满足任务执行时间,则:

执行子单元,用于创建任务执行子线程,根据任务内容的任务类型调用不同的任务类型模块,读取任务内容;对任务内容的参数进行分解,生成任务实例,根据所述任务实例执行目标任务;所述目标任务为当前时间满足任务执行时间的任务。

上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1