基于hive任务的任务调度方法及装置的制造方法

文档序号:8208968阅读:482来源:国知局
基于hive任务的任务调度方法及装置的制造方法
【技术领域】
[0001] 本发明涉及计算机技术领域,特别涉及一种基于HIVE任务的任务调度方法及装 置。
【背景技术】
[0002] 随着现在计算机技术的快速发展,为了执行任务,服务器在不同时刻均需要对任 务进行调度,特别是在基于HIVE任务的调度领域。其中,HIVE是基于Hadoop的一个数据 仓库工具,而Hadoop是一个能够对大量数据进行分布式处理的软件架构,因而通过HIVE 任务可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL (Structured Query Language,结构化查询语言)查询功能,可以将SQL语句转换为Map (映射)和Reduce (化 简)的任务进行运行。由于服务器对任务进行调度影响到后续任务执行效率。因此,如何 基于HIVE任务进行任务调度是提高任务执行效率的关键。
[0003] 相关技术中提供了一种基于HIVE任务的任务调度方法,在该方法中,预先确定某 一时刻需要调度的任务,若当前时间到了调度该任务的时刻,则对该任务进行调度。该任务 调度完成后,由相关工作人员根据该任务的调度结果确定该任务调度完毕后需要调度的下 一个任务,并确定下一个任务的调度时刻。从而由相关工作人员通过手动控制对每个任务 进行调度。
[0004] 在实现本发明的过程中,发明人发现上述方法至少存在以下问题:
[0005] 由于每次调度任务之前,需要由相关工作人员根据上一个调度的任务的调度结果 确定下一个需要调度的任务后,才能对任务进行调度。当任务较多时候,则需要手动对每个 任务进行控制,任务调度过程比较繁琐。因此,调度任务的效率较低。

【发明内容】

[0006] 为了解决现有技术的问题,本发明实施例提供了一种基于HIVE任务的任务调度 方法及装置。所述技术方案如下:
[0007] 第一方面,提供了一种基于HIVE任务的任务调度方法,所述方法包括:
[0008] 确定需要进行调度的多个任务,并确定各个任务之间的依赖关系;
[0009] 根据所述依赖关系确定各个任务的前置依赖任务及后置依赖任务;
[0010] 在所有需要进行调度的任务中选择当前需要调度的任务,得到被选任务;
[0011] 根据所述被选任务的前置依赖任务的调度结果对所述被选任务进行调度;
[0012] 按照选择所述被选任务的方式及调度所述被选任务的方式处理所述被选任务的 后置依赖任务及所有未调度的任务,直至调度完所有需要进行调度的任务。
[0013] 结合第一方面,在第一方面的第一种可能的实现方式中,所述在所有需要进行调 度的任务中选择当前需要调度的任务,包括 :
[0014] 在所有需要进行调度的任务中选择满足调度条件的任务作为当前需要调度的任 务;其中,所述调度条件为所有前置依赖任务全部调度完毕。
[0015] 结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式 中,所述在所有需要进行调度的任务中选择满足调度条件的任务作为当前需要调度的任 务,包括:
[0016] 如果有多个满足调度条件的任务,将所述多个满足调度条件的任务均作为当前需 要调度的任务,或者,按照优先级在所述多个满足调度条件的任务中选择一个任务作为当 前需要调度的任务。
[0017] 结合第一方面,在第一方面的第三种可能的实现方式中,每个需要进行调度的任 务均对应一个调度周期;所述根据所述被选任务的前置依赖任务的调度结果对所述被选任 务进行调度,包括:
[0018] 获取所述被选任务的前置依赖任务按照其对应的调度周期被调度之后得到的前 一至多个调度结果,根据获取到的调度结果对所述被选任务进行调度。
[0019] 结合第一方面、第一方面的第一种可能的实现方式、第二种可能的实现方式及第 三种可能的实现方式中的任一种可能的实现方式,在第一方面的第四种可能的实现方式 中,所述根据所述依赖关系确定各个任务的前置依赖任务及后置依赖任务,包括:
[0020] 对需要进行调度的任一任务,将与所述任一任务存在依赖关系的任务中被所述任 一任务依赖调度结果的任务确定为所述任一任务的前置依赖任务,并将依赖所述任一任务 的调度结果的任务确定为所述任一任务的后置依赖任务。
[0021] 第二方面,提供了一种基于HIVE任务的任务调度装置,所述装置包括:
[0022] 第一确定模块,用于确定需要进行调度的多个任务,并确定各个任务之间的依赖 关系;
[0023] 第二确定模块,用于根据所述依赖关系确定各个任务的前置依赖任务及后置依赖 任务;
[0024] 选择模块,用于在所有需要进行调度的任务中选择当前需要调度的任务,得到被 选任务;
[0025] 调度模块,根据所述被选任务的前置依赖任务的调度结果对所述被选任务进行调 度;
[0026] 处理模块,用于按照选择所述被选任务的方式及调度所述被选任务的方式处理所 述被选任务的后置依赖任务及所有未调度的任务,直至调度完所有需要进行调度的任务。
[0027] 结合第二方面,在第二方面的第一种可能的实现方式中,所述选择模块,用于在所 有需要进行调度的任务中选择满足调度条件的任务作为当前需要调度的任务;其中,所述 调度条件为所有前置依赖任务全部调度完毕。
[0028] 结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式 中,所述选择模块,用于当有多个满足调度条件的任务时,将所述多个满足调度条件的任务 均作为当前需要调度的任务,或者,按照优先级在所述多个满足调度条件的任务中选择一 个任务作为当前需要调度的任务。
[0029] 结合第二方面,在第二方面的第三种可能的实现方式中,每个需要进行调度的任 务均对应一个调度周期;所述调度模块,包括:
[0030] 获取单元,用于获取所述被选任务的前置依赖任务按照其对应的调度周期被调度 之后得到的前一至多个调度结果;
[0031] 调度单元,用于根据获取到的调度结果对所述被选任务进行调度。
[0032] 结合第二方面、第二方面的第一种可能的实现方式、第二种可能的实现方式及第 三种可能的实现方式中的任一种可能的实现方式,在第二方面的第四种可能的实现方式 中,所述第二确定模块,用于对需要进行调度的任一任务,将与所述任一任务存在依赖关系 的任务中被所述任一任务依赖调度结果的任务确定为所述任一任务的前置依赖任务,并将 依赖所述任一任务的调度结果的任务确定为所述任一任务的后置依赖任务。
[0033] 本发明实施例提供的技术方案带来的有益效果是:
[0034] 通过确定需要进行调度的各个任务之间的依赖关系,并根据依赖关系确定各个任 务的前置依赖任务及后置依赖任务后,根据满足调度条件的被选任务的前置依赖任务的调 度结果对被选任务进行任务调度,并依此调度其他未调度的任务,从而使得任务调度过程 比较简单,并能够保证任务有序执行。因此,调度任务的效率较高。
【附图说明】
[0035] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他 的附图。
[0036] 图1是本发明一实施例提供的一种基于HIVE任务的任务调度方法的流程图;
[0037] 图2是本发明另一实施例提供的一种基于HIVE任务的任务调度方法的流程图;
[0038] 图3是本发明另一实施例提供的一种各个任务之间的依赖关系示意图;
[0039] 图4是本发明另一实施例提供的一种基于HIVE任务的任务调度装置的结构示意 图;
[0040] 图5是本发明另一实施例提供的一种调度模块的结构示意图;
[0041] 图6是本发明另一实施例提供的一种服务器的结构示意图。
【具体实施方式】
[0042] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方 式作进一步地详细描述。
[0043] 由于相关技术在每次调度任务之前,需要由相关工作人员根据上一个调度的任务 的调度结果确定下一个需要调度的任务后,才能对任务进行调度。当任务较多的时候,通过 手动对每个任务进行调度控制,导致任务调度过程比较繁琐。因此,调度任务的效率较低。
[0044] 为了预防上述情况,提高调度任务时的效率。本发明实施例提供了一种基于HIVE 任务的任务调度方法,参见图1,本实施例提供的方法流程包括:
[0045] 101:确定需要进行调度的多个任务,并确定各个任务之间的依赖关系;
[0046] 102:根据依赖关系确定各个任务的前置依赖任务及后置依赖任务;
[0047] 作为一种可选实施例,根据依赖关系确定各个任务的前置依赖任务及后置依赖任 务,包括:
[0048] 对需要进行调度的任一任务,将与任一任务存在依赖关系的任务中被任一任务依 赖调度结果的任务确定为任一任务的前置依赖任务,并将依赖任一任务的调度结果的任务 确定为任一任务的后置依赖任务。
[0049] 103:在所有需要进行调度的任务中选择当前需要调度的任务,得到被选任务;
[0050] 作为一种可选实施例,在所有需要进行调度的任务中选择当前需要调度的任务, 包括:
[0051] 在所有需要进行调度的任务中选择满足调度条件的任务作为当前需要调度的任 务;其中,调度条件为所有前置依赖任务全部调度完毕。
[0052] 作为一种可选实施例,在所有需要进行调度的任务中选择满足调度条件的任务作 为当前需要调度的任务,包括 :
[0053] 如果有多个满足调度条件的任务,将多个满足调度条件的任务均作为当前需要调 度的任务,或者,按照优先级在多个满足调度条件的任务中选择一个任务作为当前需要调 度的任务。
[0054] 104:根据被选任务的前置依赖任务的调度结果对被选任务进行调度;<
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1