一种混合式大数据任务异步提交的方法和系统技术方案

技术编号:20992273 阅读:20 留言:0更新日期:2019-04-29 22:20
本发明专利技术提供了一种混合式大数据任务异步提交的方法和系统,其中方法包括:至少一个工作节点向Zookeeper按照预设时间间隔发送心跳信息数据,获取工作节点的负载信息发送至Zookeeper;至少一个管控节点中的主管控节点从Zookeeper获取各个工作节点的心跳信息数据,确定可用的工作节点;至少一个管控节点中的任一管控节点接收外部提交的任务,从Zookeeper获取所有可用的工作节点的负载信息,根据负载信息按照预设调度算法获取从所有可用的工作节点中选择出的工作节点地址,把任务发送至选择出的工作节点上;选择出的工作节点读取任务优先级队列中的任务,根据任务属性生成不同的集群客户端,并利用不同的集群客户端提交任务。

A Hybrid Asynchronous Submission Method and System for Large Data Tasks

The invention provides a method and system for asynchronous submission of hybrid large data tasks, which includes: at least one working node sends heartbeat information data to Zookeeper at preset time intervals, obtains load information of the working node and sends it to Zookeeper; at least one main control node in the control node obtains heartbeat information data of each working node from Zookeeper; Determine the available working nodes; at least one of the control nodes receives the tasks submitted from outside, gets the load information of all available working nodes from Zookeeper, gets the address of the selected working nodes from all available working nodes according to the load information according to the preset scheduling algorithm, and sends the tasks to the selected working nodes; The nodes read tasks in task priority queue, generate different cluster clients according to task attributes, and submit tasks using different cluster clients.

【技术实现步骤摘要】
一种混合式大数据任务异步提交的方法和系统
本专利技术涉及大数据技术数据处理领域,尤其涉及一种混合式大数据任务异步提交的方法和系统。
技术介绍
目前具有多种大数据框架的任务提交方式,但是像spark,flink,hadoopMR,storm等大数据框架的任务提交都是人工通过命令行的方式提交,不同的框架提交的命令各式各样不统一这样比较麻烦,而且不支持批量提交,要提交多个任务效率较低,也不能对提交的不同类型的任务做到实时监控和统一的管理。
技术实现思路
本专利技术旨在提供一种克服上述问题之一或者至少部分地解决上述任一问题的混合式大数据任务异步提交的方法和系统。为达到上述目的,本专利技术的技术方案具体是这样实现的:本专利技术的一个方面提供了一种混合式大数据任务异步提交的方法,包括:至少一个工作节点向Zookeeper按照预设时间间隔发送心跳信息数据,获取工作节点的负载信息,并将负载信息发送至Zookeeper;至少一个管控节点中的主管控节点从Zookeeper获取各个工作节点的心跳信息数据,确定可用的工作节点;至少一个管控节点中的任一管控节点接收外部提交的任务,并将任务存储在任务队列里,从Zookeeper获取所有可用的工作节点的负载信息,根据负载信息按照预设调度算法获取从所有可用的工作节点中选择出的工作节点地址,把任务发送至选择出的工作节点上;选择出的工作节点接收管控节点发送的任务,并将任务存储在任务优先级队列中;选择出的工作节点通过任务执行线程读取任务优先级队列中的任务,根据任务属性生成不同的集群客户端,并利用不同的集群客户端提交任务。其中,方法还包括:至少一个管控节点向Zookeeper注册分布式锁;至少一个管控节点中的一个节点接收Zookeeper发送的分布式锁,确定至少一个管控节点中的一个节点为主管控节点。其中,方法还包括:选择出的工作节点实时监控已提交的任务的状态信息,并将已提交的任务的状态信息发送至Zookeeper进行存储。其中,方法还包括:管控节点从Zookeeper获取已提交的任务的状态信息,确定是否有失败的任务,如果有失败的任务,则发送告警提示。其中,至少一个管控节点中的主管控节点从Zookeeper获取各个工作节点的心跳信息数据之后,确定可用的工作节点之前方法还包括:主管控节点超过预设时长未收到工作节点心跳信息数据,则确定未收到心跳信息数据的工作节点不可用,删除不可用的工作节点。本专利技术另一方面提供了一种混合式大数据任务异步提交的系统,包括:至少一个工作节点,用于向Zookeeper按照预设时间间隔发送心跳信息数据,获取工作节点的负载信息,并将负载信息发送至Zookeeper;至少一个管控节点中的主管控节点,用于从Zookeeper获取各个工作节点的心跳信息数据,确定可用的工作节点;至少一个管控节点中的任一管控节点,用于接收外部提交的任务,并将任务存储在任务队列里,从Zookeeper获取所有可用的工作节点的负载信息,根据负载信息按照预设调度算法获取从所有可用的工作节点中选择出的工作节点地址,把任务发送至选择出的工作节点上;选择出的工作节点,用于接收管控节点发送的任务,并将任务存储在任务优先级队列中;通过任务执行线程读取任务优先级队列中的任务,根据任务属性生成不同的集群客户端,并利用不同的集群客户端提交任务。其中,至少一个管控节点,还用于向Zookeeper注册分布式锁;至少一个管控节点中的一个节点,还用于接收Zookeeper发送的分布式锁,确定至少一个管控节点中的一个节点为主管控节点。其中,选择出的工作节点,还用于实时监控已提交的任务的状态信息,并将已提交的任务的状态信息发送至Zookeeper进行存储。其中,管控节点,还用于从Zookeeper获取已提交的任务的状态信息,确定是否有失败的任务,如果有失败的任务,则发送告警提示。其中,至少一个管控节点中的主管控节点在从Zookeeper获取各个工作节点的心跳信息数据之后,确定可用的工作节点之前,还用于超过预设时长未收到工作节点心跳信息数据,则确定未收到心跳信息数据的工作节点不可用,删除不可用的工作节点。由此可见,通过本专利技术实施例提供的混合式大数据任务异步提交的方法和系统,提供了统一任务提交的接口,提高任务提交的效率,支持spark,flink,hadoopMR,storm等大数据任务的混合式提交;同时还支持任务的优先级提交,支持任务分发到不同的集群执行。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。图1为本专利技术实施例提供的混合式大数据任务异步提交的方法的流程图;图2为本专利技术实施例提供的混合式大数据任务异步提交的系统的结构示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。本专利技术中涉及了两部分主体,即DTEngineMonitor组件(管控节点)和DTEngineWork组件(工作节点),其中,DTEngineMonitor组件(管控节点)可以为至少一个,用于启动HttpServer接收外部提交过来的任务,对DTEngineWork(工作节点)做到实时监控把不可用的节点踢除,把接收的任务根据工作节点的机器负载分发到不同的工作节点上;DTEngineWork(工作节点)可以为至少一个,用于负责不同大数据任务(Spark,Flink,HadoopMR,Storm)的异步执行,任务状态的实时监控。图1示出了本专利技术实施例提供的混合式大数据任务异步提交的方法的流程图,参见图1,本专利技术实施例提供的混合式大数据任务异步提交的方法,包括:S101,至少一个工作节点向Zookeeper按照预设时间间隔发送心跳信息数据,获取工作节点的负载信息,并将负载信息发送至Zookeeper。具体地,至少一个工作节点可以基于Netty框架启动HttpServer,向Zookeeper集群每间隔2秒发送心跳信息,证明自己是可用的,并采集机器上的cpu,memory,loader,任务数等工作节点的负载信息存放到Zookeeper上。S102,至少一个管控节点中的主管控节点从Zookeeper获取各个工作节点的心跳信息数据,确定可用的工作节点。作为本专利技术实施例的一个可选实施方式,混合式大数据任务异步提交的方法还包括:至少一个管控节点向Zookeeper注册分布式锁;至少一个管控节点中的一个节点接收Zookeeper发送的分布式锁,确定至少一个管控节点中的一个节点为主管控节点。具体地,至少一个管控节点可以基于Netty框架启动HttpServer,向Zookeeper集群注册分布式锁,只有一台会拿到分布式锁那么这台就是Master节点,其他的都是Slave节点,其中,管控节点中只有Master节点会从Zookeeper中获取工作节点心跳信息数据。作为本专利技术实施例的一本文档来自技高网...

【技术保护点】
1.一种混合式大数据任务异步提交的方法,其特征在于,包括:至少一个工作节点向所述Zookeeper按照预设时间间隔发送心跳信息数据,获取所述工作节点的负载信息,并将所述负载信息发送至所述Zookeeper;至少一个管控节点中的主管控节点从所述Zookeeper获取各个工作节点的心跳信息数据,确定可用的工作节点;至少一个管控节点中的任一管控节点接收外部提交的任务,并将所述任务存储在任务队列里,从所述Zookeeper获取所有可用的工作节点的负载信息,根据所述负载信息按照预设调度算法获取从所有可用的工作节点中选择出的工作节点地址,把所述任务发送至所述选择出的工作节点上;所述选择出的工作节点接收所述管控节点发送的所述任务,并将所述任务存储在任务优先级队列中;所述选择出的工作节点通过任务执行线程读取任务优先级队列中的所述任务,根据所述任务属性生成不同的集群客户端,并利用所述不同的集群客户端提交所述任务。

【技术特征摘要】
1.一种混合式大数据任务异步提交的方法,其特征在于,包括:至少一个工作节点向所述Zookeeper按照预设时间间隔发送心跳信息数据,获取所述工作节点的负载信息,并将所述负载信息发送至所述Zookeeper;至少一个管控节点中的主管控节点从所述Zookeeper获取各个工作节点的心跳信息数据,确定可用的工作节点;至少一个管控节点中的任一管控节点接收外部提交的任务,并将所述任务存储在任务队列里,从所述Zookeeper获取所有可用的工作节点的负载信息,根据所述负载信息按照预设调度算法获取从所有可用的工作节点中选择出的工作节点地址,把所述任务发送至所述选择出的工作节点上;所述选择出的工作节点接收所述管控节点发送的所述任务,并将所述任务存储在任务优先级队列中;所述选择出的工作节点通过任务执行线程读取任务优先级队列中的所述任务,根据所述任务属性生成不同的集群客户端,并利用所述不同的集群客户端提交所述任务。2.根据权利要求1所述的方法,其特征在于,还包括:至少一个管控节点向Zookeeper注册分布式锁;所述至少一个管控节点中的一个节点接收所述Zookeeper发送的分布式锁,确定所述至少一个管控节点中的一个节点为主管控节点。3.根据权利要求1所述的方法,其特征在于,还包括:所述选择出的工作节点实时监控已提交的任务的状态信息,并将所述已提交的任务的状态信息发送至所述Zookeeper进行存储。4.根据权利要求3所述的方法,其特征在于,还包括:所述管控节点从所述Zookeeper获取所述已提交的任务的状态信息,确定是否有失败的任务,如果有失败的任务,则发送告警提示。5.根据权利要求1所述的方法,其特征在于,所述至少一个管控节点中的主管控节点从所述Zookeeper获取各个工作节点的心跳信息数据之后,确定可用的工作节点之前还包括:所述主管控节点超过预设时长未收到工作节点心跳信息数据,则确定未收到心跳信息数据的工作节点不可用,删除不可用的工作节点。...

【专利技术属性】
技术研发人员:杨思枢
申请(专利权)人:杭州玳数科技有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1