基于VPC网络的大数据任务调度系统及其控制方法与流程

文档序号:30580402发布日期:2022-06-29 11:51阅读:107来源:国知局
基于VPC网络的大数据任务调度系统及其控制方法与流程
基于vpc网络的大数据任务调度系统及其控制方法
技术领域
1.本发明涉及数据处理技术领域,具体涉及一种基于vpc网络的大数据任务调度系统和一种基于vpc网络的大数据任务调度系统的控制方法。


背景技术:

2.相关技术中,大数据平台的emr集群拥有十几种不同的大数据组件服务(例如,thriftserver、hiveserver、hdfs、yarn、kafka、...),web应用可以直接访问大数据组件服务,大数据任务的引擎端也会直接访问大数据组件服务,总而言之,大数据组件服务的调用方众多且对访问要求没有严格限制;一个大数据平台,其大数据组件服务不一定都部署在同一内网网络条件下。如果web应用和引擎端的网络在不同的vpc网络之下,且各个vpc网络不相互通信,就会影响大数据平台的正常功能,如:任务调度、任务提交、任务运行的流程,由于不同的vpc网络是相互隔离的,网络通信需要通过vpc之间的网关(gateway)进行端口映射(ip地址和端口port)。web应用和引擎端会依赖于大数据组件服务,emr集群内的大数据组件服务越多,需要通过网关(gateway)进行映射的端口也就越多。而gateway一共就只有有限个(例如,65535个)端口,无法满足集群的大规模部署,并且相互映射会增加网络维护的成本。


技术实现要素:

3.本发明为解决上述技术问题,提供了一种基于vpc网络的大数据任务调度系统,通过执行器封装大数据组件服务的相关操作,统一了对emr集群的访问入口,减少了服务相互依赖调用的复杂度,并且通过调度器与执行器之间远程通信调用实现降低了web和emr集群这两个vpc网络之间需要映射的端口数量。
4.本发明采用的技术方案如下:
5.一种基于vpc网络的大数据任务调度系统,包括:调度器和执行器,所述调度器部署在web的vpc网络,所述执行器部署在emr集群的vpc网络,所述web的vpc网络和所述emr集群的vpc网络相互隔离,其中,所述执行器用于封装大数据组件服务的相关操作,所述调度器用于基于netty与所述执行器建立远程通信,并根据所述远程通信调用所述执行器以实现将所述大数据任务提交到所述emr集群。
6.所述执行器具体用于:定义底层的操作接口,其中,所述操作接口中包括操作大数据组件服务的方案;基于所述操作接口对相应的大数据组件服务完成接口实现;根据对应的大数据组件服务的接口实现对相应的目标对象进行实例化,并封装到operator的代理对象operatorproxy中;管理所述代理对象operatorproxy,并根据所述代理对象operatorproxy调用相应的大数据组件服务。
7.所述调度器具体用于:根据需要操作的大数据组件服务发起远程通信请求;通过远程通信客户端将数据传输的方法和参数封装成相应的消息体;通过所述远程通信客户端将所述消息体进行编码,并将编码后的消息体发送至远程通信服务端;通过所述远程通信
服务端对所述编码后的消息体进行解码,并根据解码结果在所述执行器中调用对应的大数据组件服务,并接收所述大数据组件服务的执行结果;通过所述远程通信服务端将所述大数据组件服务的执行结果进行编码,并将编码后的大数据组件服务的执行结果发送给所述远程通信客户端;通过所述远程通信客户端对编码后的大数据组件服务的执行结果进行解码,以获取最终的服务调用结果。
8.所述调度器具体还用于:接收外部发送的任务提交请求;根据所述任务提交请求通过所述远程通信调用所述执行器的第一大数据组件服务以上传任务相关资源至hdfs,并接收所述执行器的第一反馈结果;根据所述第一反馈结果调用所述执行器的第二大数据组件服务以获取yarn的计算资源情况,并接收所述执行器的第二反馈结果;根据所述第二反馈结果调用所述执行器的第三大数据组件服务以将任务提交到yarn,并接收所述执行器的第三反馈结果。
9.一种基于vpc网络的大数据任务调度系统的控制方法,所述大数据任务调度系统包括:调度器和执行器,所述调度器部署在web的vpc网络,所述执行器部署在emr集群的vpc网络,所述web的vpc网络和所述emr集群的vpc网络相互隔离,所述控制方法包括以下步骤:通过执行器封装大数据组件服务的相关操作;通过调度器基于netty与所述执行器建立远程通信,并根据所述远程通信调用所述执行器以实现将所述大数据任务提交到所述emr集群。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述的基于vpc网络的大数据任务调度系统的控制方法。
11.一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的基于vpc网络的大数据任务调度系统的控制方法。
12.本发明的有益效果:
13.本发明通过执行器封装大数据组件服务的相关操作,统一了对emr集群的访问入口,减少了服务相互依赖调用的复杂度,并且通过调度器与执行器之间远程通信调用实现降低了web和emr集群这两个vpc网络之间需要映射的端口数量。
附图说明
14.图1为本发明实施例的基于vpc网络的大数据任务调度系统的方框示意图;
15.图2为本发明实施例的基于vpc网络的大数据任务调度系统的控制方法的流程图。
具体实施方式
16.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
17.图1是根据本发明实施例的基于vpc网络的大数据任务调度系统的方框示意图。
18.如图1所示,本发明实施例的基于vpc网络的大数据任务调度系统可包括:调度器100和执行器200,调度器100部署在web的vpc网络,执行器200部署在emr集群的vpc网络,
web的vpc网络和emr集群的vpc网络相互隔离,其中,执行器200用于封装大数据组件服务的相关操作,调度器100用于基于netty与执行器200建立远程通信,并根据远程通信调用执行器200以实现将大数据任务提交到emr集群。
19.具体而言,一个大数据平台至少有两个以上的vpc网络:web的vpc网络、emr集群的vpc网络,其中,web的vpc网络和emr集群的vpc网络相互隔离,两个vpc网络之间通过网关(gateway)相互通信,网关(gateway)允许通过ip:port建立映射关系。在这个情况下,需将原来的大数据任务调度系统拆分两个部分:调度器100(taskscheduler)与执行器200(executclient),调度器100(taskscheduler)部署在web的vpc网络,执行器200(executclient)部署在emr集群的vpc网络。调度器100和执行器200之间通过远程通信,间接实现大数据任务提交到emr集群.由此,emr集群相关大数据组件服务不会直接暴露在应用层的vpc网络,既保证了大数据平台的正常运行,又实现了网络的安全隔离。
20.需要说明的是,任务执行需要依赖hdfs、yarn等相关的服务,如上传任务相关资源到hdfs、获取yarn的计算资源情况、将任务提交到yarn等,所有这些与大数据组件服务有关的操作都需要在emr集群的vpc网络层,所以需将上述这些系统程序操作(包括但不限于hdfs、yarn服务)进行统一封装到执行器executclient
21.下面结合具体实施例来详细介绍执行器200如何封装大数据组件服务的相关操作。
22.根据本发明的一个实施例,执行器200具体用于:定义底层的操作接口(operator),其中,操作接口中包括操作大数据组件服务的方案;基于操作接口对相应的大数据组件服务完成接口实现,例如,hdfs的接口实现为hdfsoperator、yarn的接口实现为yarnoperator;根据对应的大数据组件服务的接口实现对相应的目标对象进行实例化,并封装到operator的代理对象operatorproxy中;管理代理对象operatorproxy,并根据代理对象operatorproxy调用相应的大数据组件服务,如操作hdfs服务,调用operatorproxy之中的hdfsoperator,通过hdfsoperator完成hdfs服务的相关操作。
23.进一步而言,基于netty实现远程通信客户端nettyremoteclient和远程通信服务端nettyremoteserver,调度器taskscheduler通过nettyremoteclient对执行器executclient实现远程通信,executclient通过nettyremoteserver接受远程通信并处理通信请求。
24.根据本发明的一个实施例,调度器100具体用于:根据需要操作的大数据组件服务发起远程通信请求;通过远程通信客户端将数据传输的方法和参数封装成相应的消息体;通过远程通信客户端将消息体进行编码,并将编码后的消息体发送至远程通信服务端;通过远程通信服务端对编码后的消息体进行解码,并根据解码结果在执行器中调用对应的大数据组件服务,并接收大数据组件服务的执行结果;通过远程通信服务端将大数据组件服务的执行结果进行编码,并将编码后的大数据组件服务的执行结果发送给远程通信客户端;通过远程通信客户端对编码后的大数据组件服务的执行结果进行解码,以获取最终的服务调用结果。
25.进一步而言,调度器100(taskscheduler)与执行器200(executclient)执行一系列远程通信流程,包括但不限于:上传任务相关资源到hdfs、获取yarn的计算资源情况、将任务提交到yarn,调度器100(taskscheduler)部署在web的vpc网络,执行器200
(executclient)部署在emr集群的vpc网络。调度器100(taskscheduler)和执行器200(executclient)之间通过远程通信,间接实现大数据任务提交到emr集群。
26.根据本发明的一个实施例,调度器100具体还用于:接收外部发送的任务提交请求;根据任务提交请求通过远程通信调用执行器的第一大数据组件服务以上传任务相关资源至hdfs,并接收执行器的第一反馈结果(资源上传的结果);根据第一反馈结果调用执行器的第二大数据组件服务以获取yarn的计算资源情况,并接收执行器的第二反馈结果(计算资源情况的结果);根据第二反馈结果调用执行器的第三大数据组件服务以将任务提交到yarn,并接收执行器的第三反馈结果(任务提交结果)。
27.由此,本发明通过执行器executclient封装大数据组件服务的相关操作,统一了对emr集群的访问入口,减少了服务相互依赖调用的复杂度;对大数据组件服务的相关操作,通过调度器taskscheduler与执行器executclient之间远程通信调用实现,降低了web和emr集群这两个vpc网络之间需要映射的端口数量;通过上述的技术实现,统一解决了web的vpc网络和emr集群vpc网络的隔离问题,满足了大数据平台在多个vpc网络条件下服务的正常运行,实现大数据任务调度到emr集群。
28.综上所述,根据本发明实施例的基于vpc网络的大数据任务调度系统,由调度器和执行器组成,调度器部署在web的vpc网络,执行器部署在emr集群的vpc网络,web的vpc网络和emr集群的vpc网络相互隔离,通过执行器用于封装大数据组件服务的相关操作,并通过调度器基于netty与执行器建立远程通信,以及根据远程通信调用执行器以实现将大数据任务提交到emr集群。由此,通过执行器封装大数据组件服务的相关操作,统一了对emr集群的访问入口,减少了服务相互依赖调用的复杂度,并且通过调度器与执行器之间远程通信调用实现降低了web和emr集群这两个vpc网络之间需要映射的端口数量。
29.对应上述实施例的基于vpc网络的大数据任务调度系统,本发明还提出一种基于vpc网络的大数据任务调度系统的控制方法。
30.其中,大数据任务调度系统包括:调度器和执行器,调度器部署在web的vpc网络,执行器部署在emr集群的vpc网络,web的vpc网络和emr集群的vpc网络相互隔离。
31.如图2所示,本发明实施例的基于vpc网络的大数据任务调度系统的控制方法可包括以下步骤:
32.s1,通过执行器封装大数据组件服务的相关操作。
33.s2,通过调度器基于netty与执行器建立远程通信,并根据远程通信调用执行器以实现将大数据任务提交到emr集群。
34.需要说明的是,本发明实施例的基于vpc网络的大数据任务调度系统的控制方法更具体的实施方式可参照上述基于vpc网络的大数据任务调度系统的实施例,在此不再赘述。
35.根据本发明实施例的基于vpc网络的大数据任务调度系统的控制方法,通过执行器封装大数据组件服务的相关操作,以及通过调度器基于netty与执行器建立远程通信,并根据远程通信调用执行器以实现将大数据任务提交到emr集群。由此,减少了服务相互依赖调用的复杂度,并且通过调度器与执行器之间远程通信调用实现降低了web和emr集群这两个vpc网络之间需要映射的端口数量。
36.对应上述实施例,本发明还提出一种计算机设备。
37.本发明实施例的计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,实现上述实施例的基于vpc网络的大数据任务调度系统的控制方法。
38.根据本发明实施例的计算机设备,不减少了服务相互依赖调用的复杂度,并且通过调度器与执行器之间远程通信调用实现降低了web和emr集群这两个vpc网络之间需要映射的端口数量。
39.对应上述实施例,本发明还提出一种非临时性计算机可读存储介质。
40.本发明实施例的非临时性计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述的基于vpc网络的大数据任务调度系统的控制方法。
41.根据本发明实施例的非临时性计算机可读存储介质,减少了服务相互依赖调用的复杂度,并且通过调度器与执行器之间远程通信调用实现降低了web和emr集群这两个vpc网络之间需要映射的端口数量。
42.在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。“多个”的含义是两个或两个以上,除非另有明确具体的限定。
43.在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
44.在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
45.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
46.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
47.在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用
于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
48.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
49.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
50.此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。
51.尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1