CN111414381A - 数据处理方法、装置、电子设备及存储介质 - Google Patents
数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111414381A CN111414381A CN202010141718.8A CN202010141718A CN111414381A CN 111414381 A CN111414381 A CN 111414381A CN 202010141718 A CN202010141718 A CN 202010141718A CN 111414381 A CN111414381 A CN 111414381A
- Authority
- CN
- China
- Prior art keywords
- processed
- self
- data
- scheduling system
- job
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据处理方法,包括:将待处理作业数据提交至集群资源管理器;根据待处理作业数据触发相应的组件,将待处理作业数据中的面向对象的查询语言指令转换为与相应的计算引擎相匹配的任务,并启动计算引擎的作业管理器;将待处理作业数据对应的资源申请请求向自研资源调度系统的作业管理器发送,对所接收的资源申请请求进行转换基于经过转换的资源申请请求,触发相应的任务执行组件,并通过任务执行组件对待处理作业数据进行处理。本发明还提供了数据处理装置、电子设备及存储介质。本发明能够实现不同框架结构的计算引擎匹配相应的自研资源调度系统,提升自研发的资源系统的数据处理效率,提升用户的使用体验。
Description
技术领域
本发明涉及数据处理技术,尤其涉及数据处理方法、装置、电子设备及存储介质。
背景技术
相关技术中,开源集群计算框架(Spark)作为一个快速实用的开源集群计算框架,在海量的用户数据处理领域有着广泛的应用,能够高效地在一个计算节点到数千个计算节点之间伸缩计算,这一过程中,源集群计算框架(Spark)为了尽可能的获取较大的灵活性,可以支持各种集群管理器(Cluster Manager)上运行,比如通用资源管理系统(YARN YetAnother Resource Negotiator)和开源分布式资源管理框架(Mesos)等等,可以构建大型的、低延迟的数据分析应用程序。
但是相关技术中,仅支持将Hive on Spark框架运行在开源的资源调度平台上,并没有通用的将Hive on Spark框架运行在自研资源调度平台上的方案,限制了Hive onSpark框架适配不同的使用环境,导致自研发的资源调度系统的数据处理效率较差,影响了用户的使用体验。
发明内容
有鉴于此,本发明实施例提供一种数据处理方法、装置、电子设备及存储介质,能够实现不同框架结构的计算引擎适配不同的使用环境,提升自研发的资源系统的数据处理效率,提升用户的使用体验。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种数据处理方法,所述方法包括:
接收待处理作业数据,并将所述待处理作业数据提交至集群资源管理器;
通过所述集群资源管理器,根据所述待处理作业数据触发相应的组件,将所述待处理作业数据中的面向对象的查询语言指令转换为与相应的计算引擎相匹配的任务,并启动所述计算引擎的作业管理器;
基于数据仓工具驱动器组件所提交的资源数量,将所述待处理作业数据对应的资源申请请求向自研资源调度系统的作业管理器发送;
通过所述自研资源调度系统的作业管理器对所接收的资源申请请求进行转换,以实现所述资源申请请求与所述自研资源调度系统相匹配;
基于经过转换的所述资源申请请求,触发相应的任务执行组件,并通过所述任务执行组件对所述待处理作业数据进行处理。
本发明实施例还提供了一种数据处理装置,所述装置包括:
信息传输模块,用于接收待处理作业数据,并将所述待处理作业数据提交至集群资源管理器;
信息处理模块,用于通过所述集群资源管理器,根据所述待处理作业数据触发相应的组件,将所述待处理作业数据中的面向对象的查询语言指令转换为与相应的计算引擎相匹配的任务,并启动所述计算引擎的作业管理器;
所述信息处理模块,用于基于数据仓工具驱动器组件所提交的资源数量,将所述待处理作业数据对应的资源申请请求向自研资源调度系统的作业管理器发送;
所述信息处理模块,用于通过所述自研资源调度系统的作业管理器对所接收的资源申请请求进行转换,以实现所述资源申请请求与所述自研资源调度系统相匹配;
所述信息处理模块,用于基于经过转换的所述资源申请请求,触发相应的任务执行组件,并通过所述任务执行组件对所述待处理作业数据进行处理。
上述方案中,
所述信息传输模块,用于通过自研资源调度系统的不同服务集群前端接收待处理作业数据;
所述信息处理模块,用于触发所述不同服务集群中的系统接入组件,并通过所述不同服务集群中的系统接入组件将所述待处理作业数据提交至与所述不同服务集群相匹配的集群资源管理器。
上述方案中,
所述信息处理模块,用于通过所述集群资源管理器根据所述待处理作业数据触发不同服务集群中的一个节点管理器;
所述信息处理模块,用于通过所触发的节点管理器,启动所述自研资源调度系统的作业管理器,并通过所述自研资源调度系统的作业管理器将所述待处理作业数据中的面向对象的查询语言指令转换为与相应的计算引擎相匹配的任务;
所述信息处理模块,用于通过所述自研资源调度系统的作业管理器启动所述计算引擎的作业管理器,以实现所述自研资源调度系统的作业管理器和所述计算引擎的作业管理器之间的数据交互。
上述方案中,
所述信息处理模块,用于通过所述自研资源调度系统的作业管理器确定与所述计算引擎相匹配的转换协议;
所述信息处理模块,用于基于所述转换协议,通过所述自研资源调度系统的作业管理器对所述资源申请请求进行转换;
所述信息处理模块,用于将经过转换的资源申请请求向所述自研资源调度系统的资源管理器发送,以实现所述资源申请请求与所述自研资源调度系统相匹配。
上述方案中,
所述信息处理模块,用于通过所述自研资源调度系统的资源管理器将与所述待处理作业数据的资源分配结果向所述自研资源调度系统的作业管理器发送;
所述信息处理模块,用于通过所述自研资源调度系统的作业管理器基于与所述计算引擎相匹配的转换协议,对所述待处理作业数据的资源分配结果进行转换;
所述信息处理模块,用于通过所述自研资源调度系统的作业管理器将经过转换的所述待处理作业数据的资源分配结果向所述计算引擎的作业管理器发送。
上述方案中,
所述信息处理模块,用于通过所述自研资源调度系统的节点管理器响应于所述源申请请求,触发所述自研资源调度系统的实例执行组件;
所述信息处理模块,用于通过所述自研资源调度系统的实例执行组件启动所述计算引擎的实例执行组件;
所述信息处理模块,用于通过所述计算引擎的实例执行组件向所述计算引擎的作业管理器注册并申请相应的计算任务,以实现通过所述任务执行组件对所述待处理作业数据进行处理。
上述方案中,
所述信息处理模块,用于通过所述自研资源调度系统的实例执行组件对所述计算引擎的实例执行组件所获取的资源数量进行监控;
所述信息处理模块,用于当所述计算引擎的实例执行组件所获取的资源数量超过相应的资源数量阈值时,通过所述自研资源调度系统的实例执行组件关闭所述计算引擎的实例执行组件。
上述方案中,
所述信息处理模块,用于将待处理作业数据、自研资源调度系统标识、计算引擎标识以及所述待处理作业数据的处理结果发送至区块链网络,以使
所述区块链网络的节点将所述待处理作业数据、自研资源调度系统标识、计算引擎标识以及所述待处理作业数据的处理结果填充至新区块,且当对所述新区块共识一致时,将所述新区块追加至区块链的尾部。
上述方案中,
所述信息处理模块,用于接收所述区块链网络中的其他节点的数据同步请求;
所述信息处理模块,用于响应于所述数据同步请求,对所述其他节点的权限进行验证;
所述信息处理模块,用于当所述其他节点的权限通过验证时,控制当前节点与所述其他节点之间进行数据同步,以实现所述其他节点获取待处理作业数据、自研资源调度系统标识、计算引擎标识以及所述待处理作业数据的处理结果。
上述方案中,
所述信息处理模块,用于响应于查询请求,解析所述查询请求以获取对应的自研资源调度系统标识;
所述信息处理模块,用于根据所述自研资源调度系统标识,获取区块链网络中的目标区块内的权限信息;
所述信息处理模块,用于对所述权限信息与所述自研资源调度系统标识的匹配性进行校验;
所述信息处理模块,用于当所述权限信息与所述自研资源调度系统标识相匹配时,在所述区块链网络中获取相应的待处理作业数据的处理结果;
所述信息处理模块,用于响应于所述查询指令,将所获取的待处理作业数据的处理结果向相应的客户端进行推送,以实现所述客户端获取所述区块链网络中所保存的相应的待处理作业数据的处理结果。
本发明实施例还提供了一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于运行所述存储器存储的可执行指令时,实现前序的数据处理方法。
本发明实施例还提供了一种计算机可读存储介质,存储有可执行指令,所述可执行指令被处理器执行时实现前序的数据处理方法。
本发明实施例具有以下有益效果:
本发明通过接收待处理作业数据,并将所述待处理作业数据提交至集群资源管理器;通过所述集群资源管理器,根据所述待处理作业数据触发相应的组件,将所述待处理作业数据中的面向对象的查询语言指令转换为与相应的计算引擎相匹配的任务,并启动所述计算引擎的作业管理器;基于数据仓工具驱动器组件所提交的资源数量,将所述待处理作业数据对应的资源申请请求向自研资源调度系统的作业管理器发送;通过所述自研资源调度系统的作业管理器对所接收的资源申请请求进行转换,以实现所述资源申请请求与所述自研资源调度系统相匹配;基于经过转换的所述资源申请请求,触发相应的任务执行组件,并通过所述任务执行组件对所述待处理作业数据进行处理,由此,能够实现不同框架结构的计算引擎适配不同的使用环境,实现了不同框架结构的计算引擎匹配相应的自研资源调度系统,提升自研发的资源系统的数据处理效率,提升用户的使用体验
附图说明
图1是本发明实施例提供的数据处理方法的使用环境示意图;
图2为本发明实施例提供的数据处理装置的组成结构示意图;
图3为本发明实施例提供的数据处理方法一个可选的流程示意图;
图4为本发明中Spark在集群模式下的运行架构图;
图5为本发明实施例中Hive运行架构示意图;
图6为本发明实施例提供的数据处理方法一个可选的流程示意图;
图7A为本发明实施例提供的数据处理方法一个可选的流程示意图;
图7B为本发明实施例提供的数据处理方法一个可选的流程示意图;
图8是本发明实施例提供的数据处理装置100的架构示意图;
图9是本发明实施例提供的区块链网络200中区块链的结构示意图;
图10是本发明实施例提供的区块链网络200的功能架构示意图;
图11为本发明实施例的数据处理方法的使用环境示意图;
图12为本发明中数据处理方法的前端显示示意图;
图13为本发明实施例提供的数据处理方法一个可选的流程示意图;
图14为本发明实施例提供的Hive on Spark运行在YARD上架构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
2)nonce,表征消息发送系统给出的随机字符串。
3)交易(Transaction),等同于计算机术语“事务”,交易包括了需要提交到区块链网络执行的操作,并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。
4)区块链(Blockchain),是由区块(Block)形成的加密的、链式的交易的存储结构。
5)区块链网络(Blockchain Network),通过共识的方式将新区块纳入区块链的一系列的节点的集合。
6)账本(Ledger),是区块链(也称为账本数据)和与区块链同步的状态数据库的统称。
7)智能合约(Smart Contracts),也称为链码(Chaincode)或应用代码,部署在区块链网络的节点中的程序,节点执行接收的交易中所调用的智能合约,来对状态数据库的键值对数据进行更新或查询的操作。
8)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对区块中的交易达成一致,达成一致的区块将被追加到区块链的尾部,实现共识的机制包括工作量证明(PoW,Proof of Work)、权益证明(PoS,Proof of Stake)、股份授权证明(DPoS,Delegated Proof-of-Stake)、消逝时间量证明 (PoET,Proof of Elapsed Time)等。
9)Hive,基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。
10)MapReduce,面向大数据并行处理的计算模型、框架和平台,用于大规模数据集并行运算。
11)Spark,为大规模数据处理而设计的快速通用的计算引擎。
12)Hive on Spark:以Spark为引擎运行Hive。
13)Hadoop,一种分布式系统基础架构,来自于谷歌一款名为MapReduce 的编程模型包可以把一个应用程序分解为许多并行计算指令,跨大量的计算节点运行非常巨大的数据集。
14)HQL(Hibernate Query Language),一种面向对象的查询语言。
15)远程调用RPC(Remote Procedure Call),两个服务之间的远程方法调用。
16)YARN:Yet Another Resource Negotiator,一个开源的通用资源管理系统。
17)YARD:Yet Another Resource Dispatcher,用户内部自研的资源调度系统。
图1为本发明实施例提供的数据处理方法的使用场景示意图,参见图1,终端(包括终端10-1和终端10-2)上设置有各种功能的客户端(例如,聊天软件的客户端或者如微信软件能够集合不同功能的客户端),用户通过所设置的客户端可以输入相应的作业数据,客户端也可以接收相应的作业数据的处理结果,并将所接收的作业数据的处理结果向用户进行展示;终端通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输。
作为一个示例,服务器200用于布设相应不同的不同服务集群前端以实现数据处理方法,以实现触发执行与所述待处理的作业数据相匹配的业务进程,以实现通过所述任务执行组件对所述待处理作业数据进行处理,并通过终端(终端10-1和/或终端10-2)展示所生成的与作业数据相对应的作业数据的处理结果。
当然通过数据处理装置对作业数据进行处理,具体包括:接收待处理作业数据,并将所述待处理作业数据提交至集群资源管理器;通过所述集群资源管理器,根据所述待处理作业数据触发相应的组件,将所述待处理作业数据中的面向对象的查询语言指令转换为与相应的计算引擎相匹配的任务,并启动所述计算引擎的作业管理器;基于数据仓工具驱动器组件所提交的资源数量,将所述待处理作业数据对应的资源申请请求向自研资源调度系统的作业管理器发送;通过所述自研资源调度系统的作业管理器对所接收的资源申请请求进行转换,以实现所述资源申请请求与所述自研资源调度系统相匹配;基于经过转换的所述资源申请请求,触发相应的任务执行组件,并通过所述任务执行组件对所述待处理作业数据进行处理。
下面对本发明实施例的数据处理装置的结构做详细说明,数据处理装置可以各种形式来实施,如带有数据处理功能的专用终端,也可以为设置有数据处理功能的服务器,例如前序图1中的服务器200。图2为本发明实施例提供的数据处理装置的组成结构示意图,可以理解,图2仅仅示出了数据处理装置的示例性结构而非全部结构,根据需要可以实施图2示出的部分结构或全部结构。
本发明实施例提供的数据处理装置包括:至少一个处理器201、存储器202、用户接口203和至少一个网络接口204。数据处理装置20中的各个组件通过总线系统205耦合在一起。可以理解,总线系统205用于实现这些组件之间的连接通信。总线系统205除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统20 5。
其中,用户接口203可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。
可以理解,存储器202可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。本发明实施例中的存储器202能够存储数据以支持终端(如10-1)的操作。这些数据的示例包括:用于在终端(如10-1)上操作的任何计算机程序,如操作系统和应用程序。其中,操作系统包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序可以包含各种应用程序。
在一些实施例中,本发明实施例提供的数据处理装置可以采用软硬件结合的方式实现,作为示例,本发明实施例提供的数据处理装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的数据处理方法。例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(A SIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,P rogrammable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Program mable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate A rray)或其他电子元件。
作为本发明实施例提供的数据处理装置采用软硬件结合实施的示例,本发明实施例所提供的数据处理装置可以直接体现为由处理器201执行的软件模块组合,软件模块可以位于存储介质中,存储介质位于存储器202,处理器201读取存储器202中软件模块包括的可执行指令,结合必要的硬件(例如,包括处理器201以及连接到总线205的其他组件)完成本发明实施例提供的数据处理方法。
作为示例,处理器201可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
作为本发明实施例提供的数据处理装置采用硬件实施的示例,本发明实施例所提供的装置可以直接采用硬件译码处理器形式的处理器201来执行完成,例如,被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件执行实现本发明实施例提供的数据处理方法。
本发明实施例中的存储器202用于存储各种类型的数据以支持数据处理装置20的操作。这些数据的示例包括:用于在数据处理装置20上操作的任何可执行指令,如可执行指令,实现本发明实施例的从数据处理方法的程序可以包含在可执行指令中。
在另一些实施例中,本发明实施例提供的数据处理装置可以采用软件方式实现,图2示出了存储在存储器202中的数据处理装置,其可以是程序和插件等形式的软件,并包括一系列的模块,作为存储器202中存储的程序的示例,可以包括数据处理装置,数据处理装置中包括以下的软件模块:信息传输模块 2081,信息处理模块2082。当数据处理装置中的软件模块被处理器201读取到 RAM中并执行时,将实现本发明实施例提供的数据处理方法,下面继续说明数据处理装置中各个软件模块的功能,其中,
信息传输模块2081,用于接收待处理作业数据,并将所述待处理作业数据提交至集群资源管理器;
信息处理模块2082,用于通过所述集群资源管理器,根据所述待处理作业数据触发相应的组件,将所述待处理作业数据中的面向对象的查询语言指令转换为与相应的计算引擎相匹配的任务,并启动所述计算引擎的作业管理器;
所述信息处理模块2082,用于基于数据仓工具驱动器组件所提交的资源数量,将所述待处理作业数据对应的资源申请请求向自研资源调度系统的作业管理器发送;
所述信息处理模块2082,用于通过所述自研资源调度系统的作业管理器对所接收的资源申请请求进行转换,以实现所述资源申请请求与所述自研资源调度系统相匹配;
所述信息处理模块2082,用于基于经过转换的所述资源申请请求,触发相应的任务执行组件,并通过所述任务执行组件对所述待处理作业数据进行处理。
结合图2示出的数据处理装置说明本发明实施例提供的数据处理方法,参见图3,图3为本发明实施例提供的数据处理方法一个可选的流程示意图,可以理解地,图3所示的步骤可以由运行数据处理装置的各种电子设备执行,例如可以是如带有数据处理装置的专用终端、服务器或者服务器集群,其中,带有数据处理装置的专用终端可以为前序图2所示的实施例中带有信息处理装置的电子设备。下面针对图3示出的步骤进行说明。
步骤301:数据处理装置接收待处理作业数据,并将所述待处理作业数据提交至集群资源管理器。
在本发明的一些实施例中,接收待处理作业数据,并将所述待处理作业数据提交至集群资源管理器,可以通过以下方式实现:
通过自研资源调度系统的不同服务集群前端接收待处理作业数据;触发所述不同服务集群中的系统接入组件,并通过所述不同服务集群中的系统接入组件将所述待处理作业数据提交至与所述不同服务集群相匹配的集群资源管理器。其中,该前端可以为Web UI组件,用于接收用户填写的Spark相关参数,并根据该Spark相关参数生成作业数据。
步骤302:数据处理装置通过所述集群资源管理器,根据所述待处理作业数据触发相应的组件,将所述待处理作业数据中的面向对象的查询语言指令转换为与相应的计算引擎相匹配的任务,并启动所述计算引擎的作业管理器。
下面对本申请所涉及的计算引擎Spark和数据仓工具Hive进行说明,具体的,参考图4,图4为本发明中Spark在集群模式下的运行架构图,现有技术中,仅支持将Hive onSpark框架运行在开源的资源调度平台上,其中,Spark运行在开源资源调度平台上的架构图,其中,集群管理器(Cluster Manager)即可以是YARN、Mesos或Kubernetes等开源资源调度平台。Spark本身已经支持了这些开源平台,即Spark组件和ClusterManager组件间的协议是兼容的。Driver是作业驱动器,Work Node是工作节点,Executor是任务执行组件,task是最小的执行单位。
进一步地,结构化数据的程序包(spark SQL)是Spark用来操作结构化数据的程序包,通过该Spark SQL,可以使用SQL语言来查询数据,该Spark SQL 支持多种数据源,比如数据仓库工具(Hive)表等。该流式计算的组件是Spark提供的对实时数据进行流式计算的组件,提供了用来操作数据流的应用程序编程接口(API Application ProgrammingInterface)。该机器学习的程序库提供常见的机器学习功能的程序库,包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据导入等额外的支持功能。该图操作和计算的工具集合为控制图、并行图操作和计算的一组算法和工具的集合。
继续参考图5,图5为本发明实施例中Hive运行架构示意图,Hive运行时架构分为接口层、服务层、计算层、调度层和存储层。接口层是提供给用户使用的,用户通过Hive WebUI网页接口、JDBC/ODBC接口或者Hive CLI命令行提交一个Hive作业即HQL语句。服务层是将HQL语句解析成MapReduce或者 Spark任务,其中HiveServer用来接收JDBC/ODBC发送的请求;Hive Driver是驱动器,它通过编译、优化和执行三个步骤将HQL转换为MapReduce或Spark 任务;MetaStore是元数据库,其存储Hive库表和HDFS数据之间的映射关系等。计算层将解析后的Hive任务通过对应的计算引擎在分布式节点上运行,计算引擎有MapReduce、Spark和Tez等,本文主要涉及Spark计算引擎。调度层用来给计算任务分配计算节点和资源,YARN是开源的资源调度平台。存储层用来存储Hive数据,常见的分布式存储系统是HDFS。
在本发明的一些实施例中,将作业数据提交至自研资源调度系统中后,需要相应的将开源集群计算框架开启,而为了保证资源调度系统与开源集群计算框架在后续的兼容使用,可以将该开源集群计算框架中的计算应用程序管理器 (spark ApplicationMaster)从原来的集群架构中解耦,该计算应用程序管理器为 Spark的核心组件,然后将解耦后的计算应用程序管理器耦合在开源集群计算框架中。
在本发明的一些实施例中,通过所述集群资源管理器,根据所述待处理作业数据触发相应的组件,将所述待处理作业数据中的面向对象的查询语言指令转换为与相应的计算引擎相匹配的任务,并启动所述计算引擎的作业管理器,可以通过以下方式实现:
通过所述集群资源管理器根据所述待处理作业数据触发不同服务集群中的一个节点管理器;通过所触发的节点管理器,启动所述自研资源调度系统的作业管理器,并通过所述自研资源调度系统的作业管理器将所述待处理作业数据中的面向对象的查询语言指令转换为与相应的计算引擎相匹配的任务;通过所述自研资源调度系统的作业管理器启动所述计算引擎的作业管理器,以实现所述自研资源调度系统的作业管理器和所述计算引擎的作业管理器之间的数据交互。
步骤303:数据处理装置基于数据仓工具驱动器组件所提交的资源数量,将所述待处理作业数据对应的资源申请请求向自研资源调度系统的作业管理器发送。
步骤304:数据处理装置通过所述自研资源调度系统的作业管理器对所接收的资源申请请求进行转换,以实现所述资源申请请求与所述自研资源调度系统相匹配。
继续结合图2示出的数据处理装置说明本发明实施例提供的数据处理方法,参见图6,图6为本发明实施例提供的数据处理方法一个可选的流程示意图,可以理解地,图6所示的步骤可以由运行数据处理装置的各种电子设备执行,例如可以是如带有数据处理装置的专用终端、服务器或者服务器集群,其中,带有数据处理装置的专用终端可以为前序图2所示的实施例中带有信息处理装置的电子设备。下面针对图6示出的步骤进行说明。
步骤601:数据处理装置通过所述自研资源调度系统的作业管理器确定与所述计算引擎相匹配的转换协议。
步骤602:数据处理装置基于所述转换协议,通过所述自研资源调度系统的作业管理器对所述资源申请请求进行转换。
步骤603:数据处理装置将经过转换的资源申请请求向所述自研资源调度系统的资源管理器发送,以实现所述资源申请请求与所述自研资源调度系统相匹配。
在本发明的一些实施例中,所述方法还包括:
通过所述自研资源调度系统的资源管理器将与所述待处理作业数据的资源分配结果向所述自研资源调度系统的作业管理器发送;通过所述自研资源调度系统的作业管理器基于与所述计算引擎相匹配的转换协议,对所述待处理作业数据的资源分配结果进行转换;通过所述自研资源调度系统的作业管理器将经过转换的所述待处理作业数据的资源分配结果向所述计算引擎的作业管理器发送。由此,实现了将Spark组件Spark AM和SparkExecutor从Spark原来的集群架构中解耦,Hive调度层由开源框架YARN换成了自研调度系统YARD,这样就形成了Hive on Spark运行在YARD上的架构。
步骤305:数据处理装置基于经过转换的所述资源申请请求,触发相应的任务执行组件,并通过所述任务执行组件对所述待处理作业数据进行处理。
在本发明的一些实施例中,基于经过转换的所述资源申请请求,触发相应的任务执行组件,并通过所述任务执行组件对所述待处理作业数据进行处理,可以通过以下方式实现:
通过所述自研资源调度系统的节点管理器响应于所述源申请请求,触发所述自研资源调度系统的实例执行组件;通过所述自研资源调度系统的实例执行组件启动所述计算引擎的实例执行组件;通过所述计算引擎的实例执行组件向所述计算引擎的作业管理器注册并申请相应的计算任务,以实现通过所述任务执行组件对所述待处理作业数据进行处理。
在本发明的一些实施例中,还可以调用开源集群计算框架中的计算客户端(Spark Client),使得该计算客户端提交相应文件至分布式系统,建立与存储有相应数据量的分布式系统的联系,该分布式系统可以为存储的分布式文件系统或者区块链技术建立的区块链系统中的一个节点等等。
在本发明的一些实施例中,所述数据处理方法还包括:
将待处理作业数据、自研资源调度系统标识、计算引擎标识以及所述待处理作业数据的处理结果发送至区块链网络,以使
所述区块链网络的节点将所述待处理作业数据、自研资源调度系统标识、计算引擎标识以及所述待处理作业数据的处理结果填充至新区块,且当对所述新区块共识一致时,将所述新区块追加至区块链的尾部。
在本发明的一些实施例中,所述数据处理方法还包括:
接收所述区块链网络中的其他节点的数据同步请求;
响应于所述数据同步请求,对所述其他节点的权限进行验证;
当所述其他节点的权限通过验证时,控制当前节点与所述其他节点之间进行数据同步,以实现所述其他节点获取待处理作业数据、自研资源调度系统标识、计算引擎标识以及所述待处理作业数据的处理结果。
继续结合图2示出的数据处理装置说明本发明实施例提供的数据处理方法,参见图7A,图7A为本发明实施例提供的数据处理方法一个可选的流程示意图,可以理解地,图7A所示的步骤可以由运行数据处理装置的各种电子设备执行,例如可以是如带有数据处理装置的专用终端、服务器或者服务器集群,其中,带有数据处理装置的专用终端可以为前序图2所示的实施例中带有信息处理装置的电子设备。下面针对图7A示出的步骤进行说明。
步骤701:响应于查询请求,解析所述查询请求以获取对应的自研资源调度系统标识。
步骤702:根据所述自研资源调度系统标识,获取区块链网络中的目标区块内的权限信息。
步骤703:对所述权限信息与所述自研资源调度系统标识的匹配性进行校验。
步骤704:当所述权限信息与所述自研资源调度系统标识相匹配时,在所述区块链网络中获取相应的待处理作业数据的处理结果。
步骤705:响应于所述查询指令,将所获取的待处理作业数据的处理结果向相应的客户端进行推送。
由此,可以实现所述客户端获取所述区块链网络中所保存的相应的待处理作业数据的处理结果。
为了更加清楚地说明在数据处理运行环境中,本发明所提供的数据处理方法的数据处理过程,下面继续结合图2示出的数据处理装置进行说明,参见图7 B,图7B为本发明实施例提供的数据处理方法一个可选的流程示意图,可以理解地,图7B所示的步骤可以由运行数据处理装置的各种电子设备执行,例如可以为前序图2所示的实施例中带有信息处理装置的电子设备。下面针对图7B示出的步骤进行说明。
步骤7001:自研资源调度系统的不同服务集群前端接收待处理作业数据。
其中,可以通过资源调度系统中的不同前端组件接收不同需求的用户所填写的Spark相关参数,根据Spark相关参数生成作业数据。
步骤7002:通过不同的数据链路将不同服务集群前端组件中接收的待处理作业数据提交至对应的集群资源管理器。
在本发明的一些实施例中,在将待处理作业数据提交至集群资源管理器之后,需要相应的将相应的集群计算框架开启,而为了保证资源调度系统与集群计算框架在后续的兼容使用,可以将该集群计算框架中的计算引擎的作业管理器(Spark ApplicationMaster)从原来的集群架构中解耦,之后将解耦后的计算引擎的作业管理器耦合在相应的集群计算框架中。
步骤7003:启动自研资源调度系统的作业管理器,并通过自研资源调度系统的作业管理器将待处理作业数据中的面向对象的查询语言指令转换为与相应的计算引擎相匹配的任务。
步骤7004:自研资源调度系统的作业管理器启动计算引擎的作业管理器。
步骤7005:基于与计算引擎相匹配的转换协议,通过自研资源调度系统的作业管理器对所述资源申请请求进行转换。
在本发明的一个实施例中,当自研资源调度系统的不同服务集群同时接收不同的待处理作业数据时,可以将所接收的待处理业务数据加入相应的请求等待队列;
自研资源调度系统的作业管理器根据待处理作业数据的优先级标识,对所述请求等待队列中的待处理的业务数据的顺序进行调整,以减少高优先级待处理业务数据的等待时间。
步骤7006:将经过转换的资源申请请求向自研资源调度系统的资源管理器发送。
步骤7007:触发自研资源调度系统的实例执行组件,并通过自研资源调度系统的实例执行组件启动计算引擎的实例执行组件。
步骤7008:通过计算引擎的实例执行组件向所述计算引擎的作业管理器注册并申请相应的计算任务,实现对所述待处理作业数据进行处理。
在本发明的一些实施例中,具体的,计算引擎的实例执行组件启动完成后,会向对应的计算引擎的作业管理器注册并申请计算任务,由此,基于数据仓的计算引擎结构框架与自研资源调度系统相结合,从而实现将于数据仓的计算引擎结框架运行在自研资源调度系统中,以提升自研资源调度系统的数据处理能力,减少用户的等待时间,提升用户的使用体验。
进一步地,参见图8,图8是本发明实施例提供的数据处理装置100的架构示意图,包括区块链网络200(示例性示出了共识节点210-1至共识节点210-3)、认证中心300、业务主体400和业务主体500,下面分别进行说明。
区块链网络200的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体的电子设备例如用户终端和服务器,都可以在不需要授权的情况下接入区块链网络200;以联盟链为例,业务主体在获得授权后其下辖的电子设备(例如终端/服务器)可以接入区块链网络 200,此时,成为区块链网络200中的客户端节点。
在一些实施例中,客户端节点可以只作为区块链网络200的观察者,即提供支持业务主体发起交易(例如,用于上链存储数据或查询链上数据)功能,对于区块链网络200的共识节点210的功能,例如排序功能、共识服务和账本功能等,客户端节点可以缺省或者有选择性(例如,取决于业务主体的具体业务需求)地实施。从而,可以将业务主体的数据和业务处理逻辑最大程度迁移到区块链网络200中,通过区块链网络200实现数据和业务处理过程的可信和可追溯。
区块链网络200中的共识节点接收来自不同业务主体(例如图1中示出的业务主体400和业务主体500)的客户端节点(例如,图1中示出的归属于业务主体400的客户端节点410、以及归属于数据库运营商系统500的客户端节点5 10)提交的交易,执行交易以更新账本或者查询账本,执行交易的各种中间结果或最终结果可以返回业务主体的客户端节点中显示。
例如,客户端节点410/510可以订阅区块链网络200中感兴趣的事件,例如区块链网络200中特定的组织/通道中发生的交易,由共识节点210推送相应的交易通知到客户端节点410/510,从而触发客户端节点410/510中相应的业务逻辑。
下面以多个业务主体接入区块链网络以实现分布式的数据处理为例,说明区块链网络的示例性应用。
参见图8,管理环节涉及的多个业务主体,如业务主体400可以是带有数据处理功能的服务器,业务主体500可以是带有自研资源调度系统的不同服务集群前端,从认证中心300进行登记注册获得各自的数字证书,数字证书中包括业务主体的公钥、以及认证中心300对业务主体的公钥和身份信息签署的数字签名,用来与业务主体针对交易的数字签名一起附加到交易中,并被发送到区块链网络,以供区块链网络从交易中取出数字证书和签名,验证消息的可靠性 (即是否未经篡改)和发送消息的业务主体的身份信息,区块链网络会根据身份进行验证,例如是否具有发起交易的权限。业务主体下辖的电子设备(例如终端或者服务器)运行的客户端都可以向区块链网络200请求接入而成为客户端节点。
业务主体400的客户端节点410用于获取接收待处理作业数据,并将所述待处理作业数据提交至集群资源管理器;通过所述集群资源管理器,根据所述待处理作业数据触发相应的组件,将所述待处理作业数据中的面向对象的查询语言指令转换为与相应的计算引擎相匹配的任务,并启动所述计算引擎的作业管理器;基于数据仓工具驱动器组件所提交的资源数量,将所述待处理作业数据对应的资源申请请求向自研资源调度系统的作业管理器发送;通过所述自研资源调度系统的作业管理器对所接收的资源申请请求进行转换,以实现所述资源申请请求与所述自研资源调度系统相匹配;基于经过转换的所述资源申请请求,触发相应的任务执行组件,并通过所述任务执行组件对所述待处理作业数据进行处理,并将待处理作业数据、自研资源调度系统标识、计算引擎标识以及所述待处理作业数据的处理结果发送至区块链网络200。
其中,将待处理作业数据、自研资源调度系统标识、计算引擎标识以及所述待处理作业数据的处理结果发送至区块链网络200,可以预先在客户端节点4 10设置业务逻辑,当形成相应的文本信息时,客户端节点410将待处理作业数据、自研资源调度系统标识、计算引擎标识以及所述待处理作业数据的处理结果自动发送至区块链网络200,也可以由业务主体400的业务人员在客户端节点 410中登录,手动打包待处理作业数据、自研资源调度系统标识、计算引擎标识以及所述待处理作业数据的处理结果,并将其发送至区块链网络200。在发送时,客户端节点410根据待处理作业数据、自研资源调度系统标识、计算引擎标识以及所述待处理作业数据的处理结果生成对应更新操作的交易,在交易中指定了实现更新操作需要调用的智能合约、以及向智能合约传递的参数,交易还携带了客户端节点410的数字证书、签署的数字签名(例如,使用客户端节点41 0的数字证书中的私钥,对交易的摘要进行加密得到),并将交易广播到区块链网络200中的共识节点210。
区块链网络200中的共识节点210中接收到交易时,对交易携带的数字证书和数字签名进行验证,验证成功后,根据交易中携带的业务主体400的身份,确认业务主体400是否是具有交易权限,数字签名和权限验证中的任何一个验证判断都将导致交易失败。验证成功后签署节点210自己的数字签名(例如,使用节点210-1的私钥对交易的摘要进行加密得到),并继续在区块链网络200 中广播。
区块链网络200中的共识节点210接收到验证成功的交易后,将交易填充到新的区块中,并进行广播。区块链网络200中的共识节点210广播的新区块时,会对新区块进行共识过程,如果共识成功,则将新区块追加到自身所存储的区块链的尾部,并根据交易的结果更新状态数据库,执行新区块中的交易:对于提交更新待处理作业数据、自研资源调度系统标识、计算引擎标识以及所述待处理作业数据的处理结果的交易,在状态数据库中添加包括待处理作业数据、自研资源调度系统标识、计算引擎标识以及所述待处理作业数据的处理结果的键值对。
业务主体500的业务人员在客户端节点510中登录,输入目标视频或者文本信息查询请求,客户端节点510根据目标视频或者文本信息查询请求生成对应更新操作/查询操作的交易,在交易中指定了实现更新操作/查询操作需要调用的智能合约、以及向智能合约传递的参数,交易还携带了客户端节点510的数字证书、签署的数字签名(例如,使用客户端节点510的数字证书中的私钥,对交易的摘要进行加密得到),并将交易广播到区块链网络200中的共识节点2 10。
区块链网络200中的共识节点210中接收到交易,对交易进行验证、区块填充及共识一致后,将填充的新区块追加到自身所存储的区块链的尾部,并根据交易的结果更新状态数据库,执行新区块中的交易:对于提交的更新某一目标视频对应的人工识别结果的交易,根据人工识别结果更新状态数据库中该目标视频对应的键值对;对于提交的查询某个目标视频的交易,从状态数据库中查询目标视频对应的键值对,并返回交易结果。
值得说明的是,在图8中示例性地示出了将待处理作业数据、自研资源调度系统标识、计算引擎标识以及所述待处理作业数据的处理结果直接上链的过程,但在另一些实施例中,对于目标视频的数据量较大的情况,客户端节点41 0可将目标视频的哈希以及相应的文本信息的哈希成对上链,将原始的目标视频以及相应的文本信息存储于分布式文件系统或数据库。客户端节点510从分布式文件系统或数据库获取到目标视频以及相应的文本信息后,可结合区块链网络200中对应的哈希进行校验,从而减少上链操作的工作量。
作为区块链的示例,参见图9,图9是本发明实施例提供的区块链网络200 中区块链的结构示意图,每个区块的头部既可以包括区块中所有交易的哈希值,同时也包含前一个区块中所有交易的哈希值,新产生的交易的记录被填充到区块并经过区块链网络中节点的共识后,会被追加到区块链的尾部从而形成链式的增长,区块之间基于哈希值的链式结构保证了区块中交易的防篡改和防伪造。
下面说明本发明实施例提供的区块链网络的示例性的功能架构,参见图10,图10是本发明实施例提供的区块链网络200的功能架构示意图,包括应用层2 01、共识层202、网络层203、数据层204和资源层205,下面分别进行说明。
资源层205封装了实现区块链网路200中的各个节点210的计算资源、存储资源和通信资源。
数据层204封装了实现账本的各种数据结构,包括以文件系统中的文件实现的区块链,键值型的状态数据库和存在性证明(例如区块中交易的哈希树)。
网络层203封装了点对点(P2P,Point to Point)网络协议、数据传播机制和数据验证机制、接入认证机制和业务主体身份管理的功能。
其中,P2P网络协议实现区块链网络200中节点210之间的通信,数据传播机制保证了交易在区块链网络200中的传播,数据验证机制用于基于加密学方法(例如数字证书、数字签名、公/私钥对)实现节点210之间传输数据的可靠性;接入认证机制用于根据实际的业务场景对加入区块链网络200的业务主体的身份进行认证,并在认证通过时赋予业务主体接入区块链网络200的权限;业务主体身份管理用于存储允许接入区块链网络200的业务主体的身份、以及权限(例如能够发起的交易的类型)。
共识层202封装了区块链网络200中的节点210对区块达成一致性的机制 (即共识机制)、交易管理和账本管理的功能。共识机制包括POS、POW和DP OS等共识算法,支持共识算法的可插拔。
交易管理用于验证节点210接收到的交易中携带的数字签名,验证业务主体的身份信息,并根据身份信息判断确认其是否具有权限进行交易(从业务主体身份管理读取相关信息);对于获得接入区块链网络200的授权的业务主体而言,均拥有认证中心颁发的数字证书,业务主体利用自己的数字证书中的私钥对提交的交易进行签名,从而声明自己的合法身份。
账本管理用于维护区块链和状态数据库。对于取得共识的区块,追加到区块链的尾部;执行取得共识的区块中的交易,当交易包括更新操作时更新状态数据库中的键值对,当交易包括查询操作时查询状态数据库中的键值对并向业务主体的客户端节点返回查询结果。支持对状态数据库的多种维度的查询操作,包括:根据区块向量号(例如交易的哈希值)查询区块;根据区块哈希值查询区块;根据交易向量号查询区块;根据交易向量号查询交易;根据业务主体的账号(向量号)查询业务主体的账号数据;根据通道名称查询通道中的区块链。
应用层201封装了区块链网络能够实现的各种业务,包括交易的溯源、存证和验证等。
下面以自研资源调度系统为微信服务器系统为例,对本发明所涉及的数据处理方法进行说明,其中,图11为本发明实施例的数据处理方法的使用环境示意图;其中,参见图11,终端(包括终端110-1和终端110-2)上设置有能够执行不同功能相应客户端,其中,所属客户端为终端(包括终端11-1和终端11-2) 通过网络300从相应的服务器200中通过微信应用程序获取不同的信息进行浏览,终端通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输,其中,服务器200运行与微信应用程序相匹配的自研发的资源调度系统,服务器400支持支持Hive on Spa rk框架运行。
为实现上述过程,参考前序图4和图5,Spark本身已经支持了这些开源平台,即Spark组件和Cluster Manager组件间的协议是兼容的。Driver是作业驱动器,Work Node是工作节点,Executor是任务执行组件,task是最小的执行单位。
其中,图12为本发明中数据处理方法的前端显示示意图,其中,用户通过 YARD前端填写Hive作业相关参数后通过ApiSvr模块向系统提交作业,ApiSvr 是每个集群的接入服务组件,它会向集群的集群资源管理器Resource Manager 提交待处理的作业数据。
用户通过Hive Web UI网页接口、JDBC/ODBC接口或者Hive CLI命令行提交一个Hive作业即HQL语句。服务层将HQL语句解析成Map Reduce或者 Spark任务,其中HiveServer用来接收JDBC/ODBC发送的请求;Hive Driver 是驱动器,它通过编译、优化和执行三个步骤将HQL转换为Map Reduce或Sp ark任务;Meta Store是元数据库,其存储Hive库表和HDFS数据之间的映射关系等。计算层将解析后的Hive任务通过对应的计算引擎在分布式节点上运行,计算引擎有Map Reduce、Spark和Tez等,本文主要涉及Spark计算引擎。调度层用来给计算任务分配计算节点和资源,YARN是开源的资源调度平台。存储层用来存储Hive数据,常见的分布式存储系统是HDFS。
结合上述图4和图5所示的Spark在集群模式下的运行架构以及,Hive运行架构可知,现有技术中,仅支持将Hive on Spark框架运行在开源的资源调度平台上,并没有通用的将Hive on Spark框架运行在自研资源调度平台上的方案,限制了Hive on Spark框架适配不同的使用环境,也就是说服务器200运行与微信应用程序相匹配的自研发的资源调度系统,服务器400支持支持Hive on Spark框架运行,二者无法协同工作以提升数据处理效率,导致自研发的资源调度系统的数据处理效率较差,影响了用户的使用体验。
为解决上述缺陷,参考图13,图13为本发明实施例提供的数据处理方法一个可选的流程示意图,其中目标用户为当前终端的操作用户,具体包括以下步骤:
步骤1301:获取用户提交的作业数据。
具体的,参考图14,图14为本发明实施例提供的Hive on Spark运行在YARD 上架构示意图,其中,基于用户使用Hive CLI提交HQL的场景,计算引擎是 Spark。通过将使用Hive CLI提交HQL时的组件Hive Driver和MetaStore从原来Hive架构中解耦,并且将Spark组件Spark ApplicationMaster(Spark AM)和 Spark Executor从Spark原来的集群架构中解耦,Hive调度层由开源框架YARN 换成了自研调度系统YARD,这样就形成了Hive onSpark运行在YARD上的架构。在YARD的作业管理组件中启动Hive CLI和Hive Driver,用YARD自研的Application Master启动Spark Application Master,用YARD自研的Executor启动Spark Executor,并转换Spark组件和YARD组件间的通信协议以实现相应的数据处理过程。结合图14所示,ApiSvr是系统接入模块,外部请求通过ApiSvr 进入系统;ResourceManager是集群资源管理器,管理集群的计算资源;QuerySvr 是系统查询模块,提供给外部系统查询作业或集群信息;Application Master是作业管理器,管理一个作业的生命周期;Node Manager是节点管理器,管理一台机器的运行;Executor是实例执行组件,一个作业可能会有多个实例在集群上运行。
步骤1302:根据用户提交的作业参数启动组件Hive CLI和HiveDriver,并将将HQL转换为相应的Spark任务。
具体的,ResourceManager收到请求后,会在集群中选择一个节点 NodeManager用来启动YARD ApplicationMaster,YARD ApplicationMaster根据用户提交的作业参数启动组件Hive CLI和HiveDriver,Hive Driver会访问 MetaStore将HQL转换为Spark任务,转换完成后,YARD ApplicationMaster会启动Spark ApplicationMaster,之后SparkApplicationMaster只会和YARD ApplicationMaster进行交互。
步骤1303:根据Hive Driver提交的资源数量,将资源申请请求发给自研资源调度系统的作业管理器。
步骤1304:自研资源调度系统的作业管理器将来自Spark ApplicationMaster 的资源请求经过协议转换后会发给YARD ResourceManager。
同时,YARD ApplicationMaster也会将YARD ResourceManage的响应经过协议转换后发Spark ApplicationMaster。
步骤1305:Spark ApplicationMaster收到的启动Executor请求,触发NodeManager启动Spark Executor,同时,YARD ApplicationMaster进行Executor 请求转换。
步骤1306:YARD Executor会实时监控Spark Executor的资源使用情况,超过相应的阈值,YARD Executor就会关闭相应的Spark Executor。
其中,YARD Node Manager收到YARD Application Master的请求后会先启动YARD系统Container即YARD Executor,YARD Executor中会启动Spark Executor(CoarseGrained Executor Backend),YARD Executor会实时监控Spark Executor的资源使用情况,一旦超过限度,YARD Executor就会关闭相应的Spark Executor。
步骤1307:Spark Executor启动完成后,向Spark Application Master注册并申请task。
具体的,Spark Executor启动完成后,会向Spark ApplicationMaster注册并申请task,之后的Spark task调度在Spark Application Master和Spark Executor 中进行。
通过上述步骤1301-1307所示,作业数据运行完成后,Hive CLI会获取到待处理作业数据的执行结果。Spark Application Master会申请注销并自行关闭进程,这一请求仍然是向YARD Application Master发送并由YARD Application Master 做出响应,之后YARD Application Master会向YARD Resource Manager申请注销。经过以上步骤,通过对Hive on Spark框架各组件间的通信进行协议转换,使得协议满足YARD资源调度平台的要求,将Hive on Spark框架与YARD资源调度平台相结合,从而实现将Hive on Spark框架运行在YARD资源调度平台上,由此,实现了一个Hive on Spark作业在YARD自研资源调度平台上的运行。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种数据处理方法,其特征在于,所述方法包括:
接收待处理作业数据,并将所述待处理作业数据提交至集群资源管理器;
通过所述集群资源管理器,根据所述待处理作业数据触发相应的组件,将所述待处理作业数据中的面向对象的查询语言指令转换为与相应的计算引擎相匹配的任务,并启动所述计算引擎的作业管理器;
基于数据仓工具驱动器组件所提交的资源数量,将所述待处理作业数据对应的资源申请请求向自研资源调度系统的作业管理器发送;
通过所述自研资源调度系统的作业管理器对所接收的资源申请请求进行转换,以实现所述资源申请请求与所述自研资源调度系统相匹配;
基于经过转换的所述资源申请请求,触发相应的任务执行组件,并通过所述任务执行组件对所述待处理作业数据进行处理。
2.根据权利要求1所述的方法,其特征在于,所述接收待处理作业数据,并将所述待处理作业数据提交至集群资源管理器,包括:
通过自研资源调度系统的不同服务集群前端接收待处理作业数据;
触发所述不同服务集群中的系统接入组件,并通过所述不同服务集群中的系统接入组件将所述待处理作业数据提交至与所述不同服务集群相匹配的集群资源管理器。
3.根据权利要求1所述的方法,其特征在于,所述通过所述集群资源管理器,根据所述待处理作业数据触发相应的组件,将所述待处理作业数据中的面向对象的查询语言指令转换为与相应的计算引擎相匹配的任务,并启动所述计算引擎的作业管理器,包括:
通过所述集群资源管理器根据所述待处理作业数据触发不同服务集群中的一个节点管理器;
通过所触发的节点管理器,启动所述自研资源调度系统的作业管理器,并通过所述自研资源调度系统的作业管理器将所述待处理作业数据中的面向对象的查询语言指令转换为与相应的计算引擎相匹配的任务;
通过所述自研资源调度系统的作业管理器启动所述计算引擎的作业管理器,以实现所述自研资源调度系统的作业管理器和所述计算引擎的作业管理器之间的数据交互。
4.根据权利要求1所述的方法,其特征在于,所述通过所述自研资源调度系统的作业管理器对所接收的资源申请请求进行转换,以实现所述资源申请请求与所述自研资源调度系统相匹配,包括:
通过所述自研资源调度系统的作业管理器确定与所述计算引擎相匹配的转换协议;
基于所述转换协议,通过所述自研资源调度系统的作业管理器对所述资源申请请求进行转换;
将经过转换的资源申请请求向所述自研资源调度系统的资源管理器发送,以实现所述资源申请请求与所述自研资源调度系统相匹配。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
通过所述自研资源调度系统的资源管理器将与所述待处理作业数据的资源分配结果向所述自研资源调度系统的作业管理器发送;
通过所述自研资源调度系统的作业管理器基于与所述计算引擎相匹配的转换协议,对所述待处理作业数据的资源分配结果进行转换;
通过所述自研资源调度系统的作业管理器将经过转换的所述待处理作业数据的资源分配结果向所述计算引擎的作业管理器发送。
6.根据权利要求1所述的方法,其特征在于,所述基于经过转换的所述资源申请请求,触发相应的任务执行组件,并通过所述任务执行组件对所述待处理作业数据进行处理,包括:
通过所述自研资源调度系统的节点管理器响应于所述源申请请求,触发所述自研资源调度系统的实例执行组件;
通过所述自研资源调度系统的实例执行组件启动所述计算引擎的实例执行组件;
通过所述计算引擎的实例执行组件向所述计算引擎的作业管理器注册并申请相应的计算任务,以实现通过所述任务执行组件对所述待处理作业数据进行处理。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
通过所述自研资源调度系统的实例执行组件对所述计算引擎的实例执行组件所获取的资源数量进行监控;
当所述计算引擎的实例执行组件所获取的资源数量超过相应的资源数量阈值时,通过所述自研资源调度系统的实例执行组件关闭所述计算引擎的实例执行组件。
8.根据权利要求1-7任一所述的方法,其特征在于,所述方法还包括:
将待处理作业数据、自研资源调度系统标识、计算引擎标识以及所述待处理作业数据的处理结果发送至区块链网络,以使
所述区块链网络的节点将所述待处理作业数据、自研资源调度系统标识、计算引擎标识以及所述待处理作业数据的处理结果填充至新区块,且当对所述新区块共识一致时,将所述新区块追加至区块链的尾部。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
接收所述区块链网络中的其他节点的数据同步请求;
响应于所述数据同步请求,对所述其他节点的权限进行验证;
当所述其他节点的权限通过验证时,控制当前节点与所述其他节点之间进行数据同步,以实现所述其他节点获取待处理作业数据、自研资源调度系统标识、计算引擎标识以及所述待处理作业数据的处理结果。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
响应于查询请求,解析所述查询请求以获取对应的自研资源调度系统标识;
根据所述自研资源调度系统标识,获取区块链网络中的目标区块内的权限信息;
对所述权限信息与所述自研资源调度系统标识的匹配性进行校验;
当所述权限信息与所述自研资源调度系统标识相匹配时,在所述区块链网络中获取相应的待处理作业数据的处理结果;
响应于所述查询指令,将所获取的待处理作业数据的处理结果向相应的客户端进行推送,以实现所述客户端获取所述区块链网络中所保存的相应的待处理作业数据的处理结果。
11.一种数据处理装置,其特征在于,所述装置包括:
信息传输模块,用于接收待处理作业数据,并将所述待处理作业数据提交至集群资源管理器;
信息处理模块,用于通过所述集群资源管理器,根据所述待处理作业数据触发相应的组件,将所述待处理作业数据中的面向对象的查询语言指令转换为与相应的计算引擎相匹配的任务,并启动所述计算引擎的作业管理器;
所述信息处理模块,用于基于数据仓工具驱动器组件所提交的资源数量,将所述待处理作业数据对应的资源申请请求向自研资源调度系统的作业管理器发送;
所述信息处理模块,用于通过所述自研资源调度系统的作业管理器对所接收的资源申请请求进行转换,以实现所述资源申请请求与所述自研资源调度系统相匹配;
所述信息处理模块,用于基于经过转换的所述资源申请请求,触发相应的任务执行组件,并通过所述任务执行组件对所述待处理作业数据进行处理。
12.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于运行所述存储器存储的可执行指令时,实现权利要求1至10任一项所述的数据处理方法。
13.一种计算机可读存储介质,存储有可执行指令,其特征在于,所述可执行指令被处理器执行时实现权利要求1至10任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010141718.8A CN111414381B (zh) | 2020-03-04 | 2020-03-04 | 数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010141718.8A CN111414381B (zh) | 2020-03-04 | 2020-03-04 | 数据处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111414381A true CN111414381A (zh) | 2020-07-14 |
CN111414381B CN111414381B (zh) | 2021-09-14 |
Family
ID=71491149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010141718.8A Active CN111414381B (zh) | 2020-03-04 | 2020-03-04 | 数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111414381B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015556A (zh) * | 2020-08-31 | 2020-12-01 | 广东技术师范大学 | 基于区块链权益证明机制的移动群智感知数据均衡方法 |
CN112182644A (zh) * | 2020-09-11 | 2021-01-05 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和电子设备 |
CN112214517A (zh) * | 2020-11-04 | 2021-01-12 | 微医云(杭州)控股有限公司 | 流数据处理方法及装置、电子设备、存储介质 |
CN112306586A (zh) * | 2020-11-20 | 2021-02-02 | 深圳前海微众银行股份有限公司 | 数据处理方法、装置、设备及计算机存储介质 |
CN112799839A (zh) * | 2021-01-28 | 2021-05-14 | 百果园技术(新加坡)有限公司 | 请求处理方法、装置、计算机可读存储介质及电子设备 |
CN113051058A (zh) * | 2021-04-06 | 2021-06-29 | 浙江百应科技有限公司 | 一种反欺诈智能决策引擎的调度系统及方法 |
CN114610461A (zh) * | 2022-03-17 | 2022-06-10 | 北京火山引擎科技有限公司 | 一种任务处理方法及装置 |
CN115421890A (zh) * | 2022-09-05 | 2022-12-02 | 中国电信股份有限公司 | 业务处理方法、装置、介质及电子设备 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050165921A1 (en) * | 2004-01-23 | 2005-07-28 | Sam Abadir | Systems and methods for vertically integrated data distribution and access management |
CN105915633A (zh) * | 2016-06-02 | 2016-08-31 | 北京百度网讯科技有限公司 | 自动化运维系统和方法 |
CN106326011A (zh) * | 2016-08-25 | 2017-01-11 | 上海交通大学 | 云计算中面向资源成本优化的多资源调度方法 |
CN106534266A (zh) * | 2016-10-19 | 2017-03-22 | 南京邮电大学 | 一种基于Agent的多环境应用并行的云平台及其工作方法 |
CN106648871A (zh) * | 2016-12-28 | 2017-05-10 | 北京奇艺世纪科技有限公司 | 一种资源管理方法及系统 |
CN107066546A (zh) * | 2017-03-20 | 2017-08-18 | 国家计算机网络与信息安全管理中心 | 一种基于mpp引擎的跨数据中心快速查询方法和系统 |
CN107203424A (zh) * | 2017-04-17 | 2017-09-26 | 北京奇虎科技有限公司 | 一种在分布式集群中调度深度学习作业的方法和装置 |
CN108021450A (zh) * | 2017-12-04 | 2018-05-11 | 北京小度信息科技有限公司 | 基于yarn的作业分析方法和装置 |
CN109739663A (zh) * | 2018-12-29 | 2019-05-10 | 深圳前海微众银行股份有限公司 | 作业处理方法、装置、设备及计算机可读存储介质 |
CN109803018A (zh) * | 2019-01-24 | 2019-05-24 | 云南电网有限责任公司信息中心 | 一种基于Mesos和YARN结合的DCOS云管理平台 |
CN110162515A (zh) * | 2019-04-30 | 2019-08-23 | 中国科学院深圳先进技术研究院 | 一种解耦合的弹性数据仓库架构 |
CN110247978A (zh) * | 2019-06-21 | 2019-09-17 | 北京百度网讯科技有限公司 | 适配不同资源调度系统的作业执行方法和装置 |
CN110597634A (zh) * | 2019-09-12 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
-
2020
- 2020-03-04 CN CN202010141718.8A patent/CN111414381B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050165921A1 (en) * | 2004-01-23 | 2005-07-28 | Sam Abadir | Systems and methods for vertically integrated data distribution and access management |
CN105915633A (zh) * | 2016-06-02 | 2016-08-31 | 北京百度网讯科技有限公司 | 自动化运维系统和方法 |
CN106326011A (zh) * | 2016-08-25 | 2017-01-11 | 上海交通大学 | 云计算中面向资源成本优化的多资源调度方法 |
CN106534266A (zh) * | 2016-10-19 | 2017-03-22 | 南京邮电大学 | 一种基于Agent的多环境应用并行的云平台及其工作方法 |
CN106648871A (zh) * | 2016-12-28 | 2017-05-10 | 北京奇艺世纪科技有限公司 | 一种资源管理方法及系统 |
CN107066546A (zh) * | 2017-03-20 | 2017-08-18 | 国家计算机网络与信息安全管理中心 | 一种基于mpp引擎的跨数据中心快速查询方法和系统 |
CN107203424A (zh) * | 2017-04-17 | 2017-09-26 | 北京奇虎科技有限公司 | 一种在分布式集群中调度深度学习作业的方法和装置 |
CN108021450A (zh) * | 2017-12-04 | 2018-05-11 | 北京小度信息科技有限公司 | 基于yarn的作业分析方法和装置 |
CN109739663A (zh) * | 2018-12-29 | 2019-05-10 | 深圳前海微众银行股份有限公司 | 作业处理方法、装置、设备及计算机可读存储介质 |
CN109803018A (zh) * | 2019-01-24 | 2019-05-24 | 云南电网有限责任公司信息中心 | 一种基于Mesos和YARN结合的DCOS云管理平台 |
CN110162515A (zh) * | 2019-04-30 | 2019-08-23 | 中国科学院深圳先进技术研究院 | 一种解耦合的弹性数据仓库架构 |
CN110247978A (zh) * | 2019-06-21 | 2019-09-17 | 北京百度网讯科技有限公司 | 适配不同资源调度系统的作业执行方法和装置 |
CN110597634A (zh) * | 2019-09-12 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
ZHANG Z 等: "Fuxi: a fault-tolerant resource management and job scheduling system at internet scale", 《PROCEEDINGS OF THE VLDB ENDOWMENT. VLDB ENDOWMENT INC》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015556A (zh) * | 2020-08-31 | 2020-12-01 | 广东技术师范大学 | 基于区块链权益证明机制的移动群智感知数据均衡方法 |
CN112182644A (zh) * | 2020-09-11 | 2021-01-05 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和电子设备 |
CN112182644B (zh) * | 2020-09-11 | 2023-05-12 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和电子设备 |
CN112214517A (zh) * | 2020-11-04 | 2021-01-12 | 微医云(杭州)控股有限公司 | 流数据处理方法及装置、电子设备、存储介质 |
CN112306586A (zh) * | 2020-11-20 | 2021-02-02 | 深圳前海微众银行股份有限公司 | 数据处理方法、装置、设备及计算机存储介质 |
CN112799839A (zh) * | 2021-01-28 | 2021-05-14 | 百果园技术(新加坡)有限公司 | 请求处理方法、装置、计算机可读存储介质及电子设备 |
CN112799839B (zh) * | 2021-01-28 | 2024-03-15 | 百果园技术(新加坡)有限公司 | 请求处理方法、装置、计算机可读存储介质及电子设备 |
CN113051058A (zh) * | 2021-04-06 | 2021-06-29 | 浙江百应科技有限公司 | 一种反欺诈智能决策引擎的调度系统及方法 |
CN114610461A (zh) * | 2022-03-17 | 2022-06-10 | 北京火山引擎科技有限公司 | 一种任务处理方法及装置 |
CN115421890A (zh) * | 2022-09-05 | 2022-12-02 | 中国电信股份有限公司 | 业务处理方法、装置、介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111414381B (zh) | 2021-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111414381B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN110727712B (zh) | 基于区块链网络的数据处理方法、装置、电子设备及存储介质 | |
KR102611812B1 (ko) | 블록체인에 기반한 데이터 처리 방법, 장치, 기기, 저장매체 및 프로그램 | |
CN109510846B (zh) | Api调用系统、方法、装置、电子设备及存储介质 | |
US9503447B2 (en) | Secure communication between processes in cloud | |
CN113711536A (zh) | 从区块链网络中提取数据 | |
US20110302631A1 (en) | Systems and methods for logging into an application on a second domain from a first domain in a multi-tenant database system environment | |
Lazouski et al. | Usage control in cloud systems | |
WO2020253401A1 (zh) | 文件管理方法、装置、系统、设备及计算机可读存储介质 | |
US20120016999A1 (en) | Context for Sharing Data Objects | |
US10908971B1 (en) | Method and system for generating a customizable connector | |
CN111078745A (zh) | 基于区块链技术的数据上链方法和装置 | |
CN110659100B (zh) | 容器管理方法、装置和设备 | |
EP4207688A1 (en) | Asynchronous bookkeeping method and apparatus for blockchain, medium, and electronic device | |
US10326833B1 (en) | Systems and method for processing request for network resources | |
US11861386B1 (en) | Application gateways in an on-demand network code execution system | |
CN112766998A (zh) | 业务活动的数据处理方法及装置 | |
US10977218B1 (en) | Distributed application development | |
CN115694699A (zh) | 时延参数采集方法、装置、电子设备及存储介质 | |
CN101827110B (zh) | 一种企业局域网中的应用服务器访问系统 | |
CN114785526B (zh) | 基于区块链的多用户多批次权重分配计算及存储处理系统 | |
CN115222392A (zh) | 基于区块链的业务访问方法、装置、介质及电子设备 | |
CN117632395A (zh) | 工作流处理方法、装置、设备、存储介质和程序产品 | |
US11546324B1 (en) | Single use execution environment with scoped credentials for on-demand code execution | |
CN113590711A (zh) | 一种高弹性可扩展的多链数据分级共享存储系统及方法 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40025769 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |