CN110209422A - 一种业务处理方法、计算机设备和客户端 - Google Patents
一种业务处理方法、计算机设备和客户端 Download PDFInfo
- Publication number
- CN110209422A CN110209422A CN201810437912.3A CN201810437912A CN110209422A CN 110209422 A CN110209422 A CN 110209422A CN 201810437912 A CN201810437912 A CN 201810437912A CN 110209422 A CN110209422 A CN 110209422A
- Authority
- CN
- China
- Prior art keywords
- application
- application program
- client
- program
- sentence
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Abstract
本申请实施例公开了一种业务处理方法、计算机设备和客户端,用于方便数据分析人员使用Spark SQL,扩大Spark SQL的应用范围。本申请实施例提供的技术方案如下:将指定逻辑封装成通用程序并保存;接收客户端提交的可编程语句;根据所述可编程语句和所述通用程序封装生成应用程序;为所述应用程序申请对应的集群资源以运行所述应用程序。
Description
技术领域
本申请涉及大数据领域,尤其涉及一种业务处理方法、服务器和客户端。
背景技术
随着信息化的深入推进和人类日益普及的网络行为,大数据和云计算的概念应运而生。近年来,大数据应用的爆发性增长,已经衍生出独特的架构,并直接推动了存储、网络以及计算技术的研究。基于内存的分布式计算框架Spark作为Apache社区的顶级开源项目,吸引了全世界各大公司和开发人员的参与。经过多年的发展,Spark已经形成了完整的生态圈,并成为业界大数据处理的事实标准。作为Spark生态圈中的重要成员,Spark SQL为用户提供了结构化数据处理和SQL(Structured Query Language)查询分析的功能,使得不同业务领域的分析人员只需要通过SQL语句即能够透明地利用Spark完成海量数据的处理。
在面向多用户的生产环境中,Spark SQL底层通常会基于YARN(Yet AnotherResource Negotiator)资源协调系统来进行业务管理。用户任务提交后,YARN动态分配集群资源;任务结束后,YARN回收相应的集群资源。
发明内容
本申请实施例提供了一种业务处理方法、计算机设备和客户端,用于方便数据分析人员使用Spark SQL,扩大Spark SQL的应用范围。
一方面,本申请实施例提供一种业务处理方法,包括:
计算机设备将指定逻辑封装成通用程序并保存;接收客户端提交的可编程语句;根据所述可编程语句和所述通用程序封装生成应用程序;为所述应用程序申请对应的集群资源以运行所述应用程序。
另一方面,本申请实施例提供一种业务处理方法,包括:
客户端向服务器提交可编程语句,以使得所述服务器根据所述可编程语句和通用程序封装生成应用程序;以及为所述应用程序申请对应的集群资源以运行所述应用程序,所述通用程序由指定逻辑封装生成;最后关闭该应用程序。
另一方面,本申请实施例提供一种计算机设备,包括:
处理模块,用于将指定逻辑封装成通用程序并保存;
接收模块,用于接收客户端提交的可编程语句;
所述处理模块,用于根据所述可编程语句和所述通用程序封装生成应用程序;为所述应用程序申请对应的集群资源以运行所述应用程序。
另一方面,本申请实施例提供一种计算机设备,包括:
存储器、收发器、处理器以及总线;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,包括如下步骤:
将指定逻辑封装成通用程序并保存;
接收客户端提交的可编程语句;
根据所述可编程语句和所述通用程序封装生成应用程序;为所述应用程序申请对应的集群资源以运行所述应用程序。
所述总线用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
另一方面,本申请实施例提供一种客户端,包括:
发送模块,用于向服务器提交可编程语句,以使得所述服务器根据所述可编程语句和通用程序封装生成应用程序;以及为所述应用程序申请对应的集群资源以运行所述应用程序,所述通用程序由指定逻辑封装生成;
处理模块,用于关闭所述应用程序。
另一方面,本申请实施例提供一种客户端,包括:
存储器、收发器、处理器以及总线;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,包括如下步骤:
向服务器提交可编程语句,以使得所述服务器根据所述可编程语句和通用程序封装生成应用程序;以及为所述应用程序申请对应的集群资源以运行所述应用程序,所述通用程序由指定逻辑封装生成;关闭所述应用程序。
所述总线用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
另一方面,本申请实施例提供一种业务处理系统,该业务处理系统包括客户端和服务器,其中,该客户端具备上述方法中的客户端的功能,该服务器具备上述方法中的服务器的功能。
另一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
另一方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:由于服务器可以将客户端提交的SQL语句以及该服务器保存的通用程序进行封装,得到包含于SQL ApplicationMaster的应用程序,因此该应用程序可以直接利用该通用程序引导运行,不再需要用户编写完整的上下文程序来实现应用程序的初始化等准备工作,因此非专业的数据分析人员也可以使用该Spark SQL进行数据分析,扩大Spark SQL的应用范围。
附图说明
图1为基于Spark系统下的Yarn架构的示意图;
图2为基于Spark系统下的服务器模式(Yarn-Cluster)的程序提交和执行流程图;
图3为基于Spark系统下的客户端模式(Yarn-Client)的程序提交和执行流程图;
图4为本申请实施例中业务处理方法的一个实施例示图;
图5为本申请实施例中业务处理方法的另一个实施例示意图;
图6为本申请实施例中业务处理方法的一个流程示意图;
图7为本申请实施例中计算机设备的一个实施例示意图;
图8为本申请实施例中计算机设备的另一个实施例示意图;
图9为本申请实施例中客户端的一个实施例示意图;
图10为本申请实施例中客户端的另一个实施例示意图;
图11为本申请实施例中业务处理系统的一个实施例示意图。
具体实施方式
本申请实施例提供了一种业务处理方法、服务器和客户端,用于方便数据分析人员使用Spark SQL,扩大Spark SQL的应用范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的几个要素:
客户端:
客户端(Client)或称为用户端,是指与服务器相对应,为客户提供本地服务的程序。除了一些只在本地运行的应用程序之外,一般安装在普通的客户机(如手机等终端)上,需要与服务端互相配合运行,对于应用程序所在的客户端,需要网络中有相应的服务器和服务程序来提供相应的服务,如数据库服务,电子邮件服务等等,在客户端和服务器端,需要建立特定的通信连接,来保证应用程序的正常运行。
服务器:也称伺服器,服务器是网络环境中的高性能计算机,它侦听网络上的其他计算机(客户机)提交的服务请求,并提供相应的服务。
随着人类日益普及的网络行为,大数据和云计算应运而生。而基于内存的大数据分布式计算框架——Spark目前作为Apache开源社区的顶级项目,吸引到全世界各大公司以及开发人员的参与。Spark发展至今已经成为业界大数据处理的事实标准。为了提高Spark集群利用率,提出了另一种资源协调者(Yet Another Resource Negotiator,Yarn)资源管理系统进行业务提交。具体如图1所示,Yarn的架构包括:
全局资源管理器(Resource Manager,RM):具体用于负责整个系统的资源管理和分配,主要由调度器和应用管理器组成。调度器根据容量、队列等限制条件,将系统中的资源分配给正在运行的应用程序。
节点代理(Node Manager,NM):具体用于对每个节点的资源和任务进行管理。具体包括定时向RM汇报本节点上的资源使用情况和运行状态;和,接收并处理来自应用管理(Application Master,AM)的任务启动/停止等各种请求。
每个应用的应用管理(Application Master,AM):具体用于与RM调度器协商获得资源;与NM通信以启动/停止任务;监控所有任务的运行状态,并在任务运行失败时重新为新任务申请资源以重启任务。
资源集群(Resource Container):Resource Container为Yarn中的资源分配单位,其封装了多维度的资源(包括内存、CPU、磁盘等)。每个任务对应一个集合Container,且该任务只能在该Container中执行,Container是一个动态资源划分单元,根据应用程序需要动态生成的。在该Yarn架构的基础上,该Spark系统自带的Yarn集群提交模式包括服务器模式(Yarn-Cluster)和客户端模式(Yarn-Client)。两种模式的应用程序提交与执行流程分别如图2和图3所示。
图2为Yarn-Cluster模式的应用程序提交和执行流程,具体如下:
该客户端向Yarn中提交应用程序,该应用程序中包括Application Master以及启动Application Master的命令以及用户程序等;
该RM为该应用程序分配Container,并向某一个NM发送第一通知消息,该第一通知消息指示该NM在该Container中启动该应用程序中的Application Master;
该NM启动该Application Master并初始化该应用程序中的用户程序,该NM作为该Spark的驱动器节点(Driver);
该Application Master向该RM申请资源;
在该Application Master申请到资源之后,向该NM发送第二通知消息,该第二通知消息指示该NM启动相应的运行工具(比如Executor);
该运行工具向该NM上的该Application Master注册汇报并完成相应的任务。
图3为Yarn-Client模式的应用程序提交和执行流程,具体如下:
该客户端向Yarn中提交应用程序,该应用程序中包括Application Master以及启动Application Master的命令以及用户程序等,此时该客户端作为该Spark的驱动器节点(Driver);
该RM在本地NM中为该应用程序分配Container,并向该NM发送第三通知消息,该第三通知消息指示该NM在该Container中启动该应用程序中的Application Master;
该NM启动该Application Master并初始化该应用程序中的用户程序;
该Application Master向该RM申请资源;
在该Application Master申请到资源之后,向该NM发送第二通知消息,该第二通知消息指示该NM启动相应的运行工具(比如Executor);
该运行工具向该NM上的该Application Master注册汇报并完成相应的任务。
在应用层面,Yarn主要针对的是Spark系统本身,而不是Spark SQL。如果要处理SQL语句,用户需要首先熟悉Spark底层的知识,然后编写完整的上下文程序,对于非专业的数据分析人员有着学习门槛。
而Spark SQL为了支持多用户的任务提交和为了避免单点失效问题,采用了Yarn-Cluster模式,而为了方便数据分析人员使用Spark SQL,扩大Spark SQL的应用范围,本申请实施例提供了如下技术方案:服务器将指定逻辑封装成通用程序并保存;该服务器接收客户端提交的可编程语句;然后该服务器根据所述可编程语句和所述通用程序封装生成应用程序;该服务器为所述应用程序申请对应的集群资源以运行所述应用程序。
其中,本申请实施例中Spark SQL的架构在包括了如图1所示的YARN的架构的基础上,还包括如下组成部分:
通用程序,其中,该通用程序根据Spark系统的通用逻辑进行封装得到。可以理解的是,该通用逻辑用于实现通用的业务逻辑操作,因此也可以称为业务无关逻辑,比如业务运行的初始化逻辑模块或者账号登录模块等。该通用程序通常是将通用写成代码放在一起生成,同时该通用程序在使用时是以方法的形式直接调用。
SQL Application Master,其中,该SQL Application Master的功能相当于YARN中的AM,且该SQL Application Master中封装有该通用程序。
SQL Message,用于实现该SQL Application Master在服务器中运行时与客户端之间的信息交互。
具体请参阅图4所示,本申请实施例中业务处理方法的一个实施例,包括:
401、客户端向服务器提交可编程语句。
在执行业务时,该客户端向该服务器提交与该业务有关的可编程语句。可选的,该可编程语句可为SQL语句。具体的来说,该客户端可以通过该客户端与服务器之间协议规定的消息接口向该服务器提交可编程语句。可以理解的是该消息接口可以为SQL消息接口。该SQL消息接口定义为Spark Context Manager。为了应对不同情况的SQL提交,该SQL消息接口包括但不限于submit Sql、submit Set和submit Python Sql三种方式。该submit Sql消息接口中用于提交SQL字符串,submit Set用于设置语句,submit Python Sql用于提交Python SQL字符串。客户端在提交SQL语句时,选择相应的SQL消息接口向服务器发送提交该应用程序。
402、该服务器根据该可编程语句和通用程序封装生成应用程序。
该服务器在接收到该可编程语句之后,该服务器将该可编程语句与该服务器保存的通用程序进行封装得到包含应用程序。
具体来说,该服务器可以通过应用程序主进程SQL Application Master接收该客户端提交的可编程语句。
可选的,该通用程序为该Spark系统的通用逻辑封装生成,这样可以保证客户端在提交SQL语句时可以不再专门创建初始化环境,而是直接将该通用程序封装成应用程序中进行提交,然后该通用程序在该应用程序运行时自动创建相应的初始化程序。
具体的来说,该服务器将该可编程语句与该通用程序封装生成应用程序可以包括如下步骤:
首选,该服务器接收集群运行环境的相关配置信息(包括资源大小、元数据代理地址、序列化策略等),实例化会话控制SparkSession,并创建业务对应的会话状态SessionState对象;然后客户端向服务器提交SQL字符串,SessionState中实现SQL的预检查、逻辑计划和物理计划生成。此外,还会涉及到对一些特殊语句(包括cache、add等)的处理;最后在服务器将被提交到Spark系统的SQL执行完毕后,获取相关的执行结果信息,并进行一些额外的处理,包括结果数据表的Schema信息、临时目录的清理等等。
403、服务器为该应用程序申请对应的集群资源并运行该应用程序。
该服务器封装生成该应用程序之后,该服务器将该应用程序提交到集群资源管理系统,并为该应用程序向该集群资源管理系统申请对应的集群资源。具体来说,该服务器将该应用程序在SQL Application Master中封装完成,并由该SQL Application Master与YARN中的RM调度该应用程序的集群资源;然后该SQL Application Master将占用该集群资源;该SQL Application Master利用该通用程序初始化运行环境,最后使得该SQLApplication Master在该集群资源里中开始运行该应用程序。
404、在该应用程序运行结束后,该服务器关闭该应用程序。
在该应用程序的任务完成之后,该服务器关闭该应用程序。
具体来说,该服务器将该SQL Application Master关闭。
本实施例中,由于服务器可以将客户端提交的SQL语句以及该服务器保存的通用程序进行封装得到包含于SQL Application Master的应用程序,因此该应用程序可以直接利用该通用程序引导运行,不再需要用户编写完整的上下文程序来实现应用程序的初始化等准备工作,因此非专业的数据分析人员也可以使用该Spark SQL进行数据分析,扩大Spark SQL的应用范围。
基于上述方案,具体请参阅图5,本申请实施例中业务处理方法的另一个实施例,包括:
501、客户端向服务器提交可编程语句。
在执行业务时,该客户端向该服务器提交与该业务有关的可编程语句。可选的,该可编程语句可为SQL语句。具体的来说,该客户端可以通过该客户端与服务器之间协议规定的消息接口向该服务器提交可编程语句。可以理解的是该消息接口可以为SQL消息接口。该SQL消息接口定义为Spark Context Manager。为了应对不同情况的SQL提交,该SQL消息接口包括但不限于submit Sql、submit Set和submit Python Sql三种方式。客户端在提交SQL语句时,选择相应的SQL消息接口向服务器发送提交该应用程序。
502、该服务器根据该可编程语句和通用程序封装生成应用程序。
该服务器在接收到该可编程语句之后,该服务器将该可编程语句与该服务器保存的通用程序进行封装得到包含应用程序。
具体来说,该服务器可以通过应用程序主进程SQL Application Master接收该客户端提交的可编程语句。
可选的,该通用程序为该Spark系统的通用逻辑封装生成,这样可以保证客户端在提交SQL语句时可以不再专门创建初始化环境,而是直接将该通用程序封装成应用程序中进行提交,然后该通用程序在该应用程序运行时自动创建相应的初始化程序。
具体的来说,该服务器将该可编程语句与该通用程序封装生成应用程序可以包括如下步骤:
首选,该服务器接收集群运行环境的相关配置信息(包括资源大小、元数据代理地址、序列化策略等),实例化SparkSession,并创建业务对应的SessionState对象;然后客户端向服务器提交SQL字符串,SessionState中实现SQL的预检查、逻辑计划和物理计划生成。此外,还会涉及到对一些特殊语句(包括cache、add等)的处理;最后在服务器将被提交到Spark系统的SQL执行完毕后,获取相关的执行结果信息,并进行一些额外的处理,包括结果数据表的Schema信息、临时目录的清理等等。
503、服务器为该应用程序申请对应的集群资源并运行该应用程序。
该服务器封装生成该应用程序之后,该服务器将该应用程序提交到集群资源管理系统,并为该应用程序向该集群资源管理系统申请对应的集群资源。具体来说,该服务器将该应用程序在SQL Application Master中封装完成,并由该SQL Application Master与YARN中的RM调度该应用程序的集群资源;然后该SQL Application Master将占用该集群资源;该SQL Application Master利用该通用程序初始化运行环境,最后使得该SQLApplication Master在该集群资源里中开始运行该应用程序。
504、该客户端通过消息接口从该服务器获取该应用程序的运行状态信息。
在该应用程序的运行过程中,SQL Application Master会通过该客户端与服务器之间协议规定的消息接口向客户端反馈该应用程序的运行状态。具体来说,该SQLApplication Master会根据该SQL Application Master的运行日志判断该应用程序是否处于运行状态;然后将该应用程序的识别码与状态信息进行缓存,并通过消息接口发送给客户端。
该客户端与该服务器之间通过协议规定的消息接口可以为SQL消息接口(即SQLmessage接口),该SQL message接口用于SQL Application Master与客户端进行状态信息传递,其中,该状态信息包括Driver注册、用户SQL提交和信息获取等任务运行过程中各方面的信息。该客户端与该服务器之间通过该SQL消息接口进行通信,该客户端可以调用该SQL消息接口从该服务器获取该应用程序的运行状态信息。
505、在该应用程序运行结束后,该服务器和该客户端关闭该应用程序。
在该应用程序运行完成任务之后,该服务器将该SQL Application Master关闭;同时,该客户端在接收到该应用程序运行完成的反馈消息之后,该客户端也关闭该应用程序。
下面以一个实际应用场景对本实施例中业务处理方法进行说明:
如图6所示,该应用场景中包括客户端,以及基于Spark SQL架构的服务器。该客户端与该服务器之间协议规定客户端接口(该客户端接口包括SQL message和应用程序接口,客户端的接口具体实现包括:get State()、get App ID()、get Job Progress()、getSchema()、submit Sql(SQL)等),然后该客户端通过该应用程序接口向服务器提交SQL语句;然后该服务器将该SQL语句和通用程序进行封装生成应用程序(即用户任务);该应用程序与该SQL message组成该SQL Application Master(即该SQL应用管理);该服务器将该SQL Application Master提交到RM;然后该RM为该SQL Application Master分配Container以及NM,该NM作为该Spark SQL系统的Driver。该服务器为该SQL ApplicationMaster向该RM申请资源,该RM为该SQL Application Master分配资源并通知该NM启动该SQL Application Master;这时该NM通过该通用程序为该SQL Application Master创建初始化环境,然后该SQL Application Master为该用户程序创建Executor,然后通过该Executor执行任务。而在用户程序运行期间,该客户端通过SQL message与该SQLApplication Master进行通信,从而获取该SQL Application Master运行时的状态信息,然后在该用户程序运行结束之后,该服务器关闭该用户程序对应的SQL ApplicationMaster,该客户端在获知该用户程序运行结束之后关闭该用户程序。
本实施例中,由于服务器可以将客户端提交的SQL语句以及该服务器保存的通用程序进行封装得到包含于SQL Application Master的应用程序,因此该应用程序可以直接利用该通用程序引导运行,不再需要用户编写完整的上下文程序来实现应用程序的初始化等准备工作,因此非专业的数据分析人员也可以使用该Spark SQL进行数据分析,扩大Spark SQL的应用范围。同时,该客户端与该服务器之间协议规定SQL消息接口,因此该客户端可以获取应用程序运行过程中的任一状态信息,有助于用户及时发现应用程序的问题。
上面对本申请实施例中业务处理方法进行了说明,下面对本申请实施例中服务器进行说明,具体请参阅图7所示,本申请实施例中计算机设备的一个实施例包括:
处理模块701,用于将指定逻辑封装成通用程序并保存;
接收模块702,用于接收客户端提交的可编程语句;
所述处理模块701,用于根据所述可编程语句和所述通用程序封装生成应用程序;为所述应用程序申请对应的集群资源以运行所述应用程序。
可选的,所述指定逻辑至少包含初始化逻辑块;
该处理模块701,还用于调用所述通用逻辑对所述应用程序进行初始化。
可选的,该接收模块702,具体用于通过应用程序主进程Application Master接收客户端提交的可编程语句;其中,所述Application Master包括消息接口,所述消息接口包括所述Application Master与所述客户端之间的交互协议,并用于在所述客户端与所述Application Master之间进行信息交互。
可选的,该计算机设备还包括:
发送模块703,用于所述Application Master通过所述消息接口向所述客户端反馈所述应用程序的运行状态信息包括:
可选的,该处理模块701,具体用于根据所述Application Master的运行日志,获取所述应用程序的运行状态信息;
然后该发送模块703通过所述消息接口向所述客户端反馈所述应用程序的运行状态信息。
可选的,该所述可编程语句是结构化查询语言SQL语句,所述消息接口是SQL消息接口。
本实施例中,由于服务器可以将客户端提交的SQL语句以及该服务器保存的通用程序进行封装得到包含于SQL Application Master的应用程序,因此该应用程序可以直接利用该通用程序引导运行,不再需要用户编写完整的上下文程序来实现应用程序的初始化等准备工作,因此非专业的数据分析人员也可以使用该Spark SQL进行数据分析,扩大Spark SQL的应用范围。同时,该客户端与该服务器之间协议规定SQL消息接口,因此该客户端可以获取应用程序运行过程中的任一状态信息,有助于用户及时发现应用程序的问题。
具体请参阅图8,本申请实施例中计算机设备的另一个实施例,包括:
收发器801,处理器802,总线803;
该收发器801与该处理器802通过该总线803相连;
该总线803可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器802可以是中央处理器(central processing unit,简称CPU),网络处理器(network processor,简称NP)或者CPU和NP的组合。
处理器802还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,简称ASIC),可编程逻辑器件(programmable logic device,简称PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,简称CPLD),现场可编程逻辑门阵列(field-programmable gate array,简称FPGA),通用阵列逻辑(generic array logic,简称GAL)或其任意组合。
参见图8所示,该计算机设备还可以包括存储器804。该存储器804可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,简称RAM);存储器也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,简称HDD)或固态硬盘(solid-state drive,简称SSD);存储器804还可以包括上述种类的存储器的组合。
可选地,存储器804还可以用于存储程序指令,处理器802调用该存储器804中存储的程序指令,可以执行图1至图6中所示实施例中的一个或多个步骤,或其中可选的实施方式,实现上述方法中计算机设备的功能。
其中,所述存储器804用于存储程序;
该处理器802,执行如下步骤:将指定逻辑封装成通用程序并保存;
收发器801,执行如下步骤:接收客户端提交的可编程语句;
所述处理器802用于执行所述存储器中的程序,执行如下步骤:根据所述可编程语句和所述通用程序封装生成应用程序;为所述应用程序申请对应的集群资源以运行所述应用程序;
所述总线803用于连接所述存储器804以及所述处理器802,以使所述存储器804以及所述处理器802进行通信。
可选的,所述指定逻辑至少包含初始化逻辑块;
该处理模块701,还用于调用所述通用逻辑对所述应用程序进行初始化。
可选的,该收发器801,具体用于通过应用程序主进程Application Master接收客户端提交的可编程语句;其中,所述Application Master包括消息接口,所述消息接口包括所述Application Master与所述客户端之间的交互协议,并用于在所述客户端与所述Application Master之间进行信息交互。
可选的,该计算机设备还包括:
收发器801,用于所述Application Master通过所述消息接口向所述客户端反馈所述应用程序的运行状态信息。
可选的,该处理器802,具体用于根据所述Application Master的运行日志,获取所述应用程的运行状态信息;
然后该收发器801,通过所述消息接口向所述客户端反馈所述应用程序的运行状态信息。
可选的,该所述可编程语句是结构化查询语言SQL语句,所述消息接口是SQL消息接口。
本实施例中,由于服务器可以将客户端提交的SQL语句以及该服务器保存的通用程序进行封装得到包含于SQL Application Master的应用程序,因此该应用程序可以直接利用该通用程序引导运行,不再需要用户编写完整的上下文程序来实现应用程序的初始化等准备工作,因此非专业的数据分析人员也可以使用该Spark SQL进行数据分析,扩大Spark SQL的应用范围。同时,该客户端与该服务器之间协议规定SQL消息接口,因此该客户端可以获取应用程序运行过程中的任一状态信息,有助于用户及时发现应用程序的问题。
下面对本申请实施例中的客户端进行说明,该客户端可以是无线终端,无线终端可以是移动终端,如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或车载的移动装置,它们与无线接入网交换语言和/或数据。例如,个人通信业务(personal communication service,PCS)电话、无绳电话、会话发起协议(session initiation protocol,SIP)话机、无线本地环路(wireless localloop,WLL)站、个人数字助理(personal digital assistant,PDA)等设备。所述终端也可以为订户单元(subscriber unit,SU)、订户站(subscriber station,SS),移动站(mobilestation,MS)、远程站(remote station,RS)、远端设备(remote terminal,RT)、接入终端(access terminal,AT)、用户终端(user terminal,UT)、用户代理(user agent,UA)、用户设备、或用户装备(user equipment,UE)等。
具体请参阅图9所示,本申请实施例中客户端的一个实施例,包括:
发送模块901,用于向服务器提交可编程语句,以使得所述服务器根据所述可编程语句和通用程序封装生成应用程序;以及为所述应用程序申请对应的集群资源以运行所述应用程序,所述通用程序由指定逻辑封装生成;
处理模块902,用于关闭所述应用程序。
可选的,所述客户端还包括接收模块903,用于通过消息接口接收所述应用程序的运行状态信息,所述消息接口包括Application Master与客户端之间的交互协议,并用于在所述客户端与所述Application Master之间进行信息交互。
本实施例中,由于服务器可以将客户端提交的SQL语句以及该服务器保存的通用程序进行封装得到包含于SQL Application Master的应用程序,因此该应用程序可以直接利用该通用程序引导运行,不再需要用户编写完整的上下文程序来实现应用程序的初始化等准备工作,因此非专业的数据分析人员也可以使用该Spark SQL进行数据分析,扩大Spark SQL的应用范围。同时,该客户端与该服务器之间协议规定SQL消息接口,因此该客户端可以获取应用程序运行过程中的任一状态信息,有助于用户及时发现应用程序的问题。
具体请参阅图10,本申请实施例中客户端的另一个实施例,包括:
收发器1001,处理器1002,总线1003;
该收发器1001与该处理器1002通过该总线1003相连;
该总线1003可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器1002可以是中央处理器(central processing unit,简称CPU),网络处理器(network processor,简称NP)或者CPU和NP的组合。
处理器1002还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,简称ASIC),可编程逻辑器件(programmable logic device,简称PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,简称CPLD),现场可编程逻辑门阵列(field-programmable gate array,简称FPGA),通用阵列逻辑(generic array logic,简称GAL)或其任意组合。
参见图10所示,该客户端还可以包括存储器1004。该存储器1004可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,简称RAM);存储器也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,简称HDD)或固态硬盘(solid-state drive,简称SSD);存储器1004还可以包括上述种类的存储器的组合。
可选地,存储器1004还可以用于存储程序指令,处理器1002调用该存储器1004中存储的程序指令,可以执行图1至图6中所示实施例中的一个或多个步骤,或其中可选的实施方式,实现上述方法中客户端的功能。
所述存储器1004用于存储程序;
所述处理器1002用于执行所述存储器1004中的程序,包括如下步骤:
向服务器提交可编程语句,以使得所述服务器根据所述可编程语句和通用程序封装生成应用程序;以及为所述应用程序申请对应的集群资源以运行所述应用程序,所述通用程序由指定逻辑封装生成;关闭所述应用程序;
所述总线1003用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
可选的,该收发器1001,用于通过消息接口接收所述应用程序的运行状态信息,所述消息接口包括Application Master与客户端之间的交互协议,并用于在所述客户端与所述Application Master之间进行信息交互。
本实施例中,由于服务器可以将客户端提交的SQL语句以及该服务器保存的通用程序进行封装得到包含于SQL Application Master的应用程序,因此该应用程序可以直接利用该通用程序引导运行,不再需要用户编写完整的上下文程序来实现应用程序的初始化等准备工作,因此非专业的数据分析人员也可以使用该Spark SQL进行数据分析,扩大Spark SQL的应用范围。同时,该客户端与该服务器之间协议规定SQL消息接口,因此该客户端可以获取应用程序运行过程中的任一状态信息,有助于用户及时发现应用程序的问题。
具体请参阅图11所示,本申请实施例中业务处理系统的一个实施例,该业务处理系统包括客户端1101与计算机设备1102,该计算机设备1102通过应用程序主进程Application Master接收客户端1101提交的可编程语句,该计算机设备1102根据该可编程语句和通用程序封装生成应用程序;为所述应用程序申请对应的集群资源以运行所述应用程序;该客户端1101通过消息接口与该计算机设备1102实现状态信息交互。
其中,该客户端1101还具备上述图1至图6中任一实施例中客户端的功能;
该计算机设备1102还具备上述图1至图6中任一实施例中计算机设备的功能。
本实施例中,由于计算机设备可以将客户端提交的SQL语句以及该服务器保存的通用程序进行封装得到包含于SQL Application Master的应用程序,因此该应用程序可以直接利用该通用程序引导运行,不再需要用户编写完整的上下文程序来实现应用程序的初始化等准备工作,因此非专业的数据分析人员也可以使用该Spark SQL进行数据分析,扩大Spark SQL的应用范围。同时,该客户端与该服务器之间协议规定SQL消息接口,因此该客户端可以获取应用程序运行过程中的任一状态信息,有助于用户及时发现应用程序的问题。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (12)
1.一种业务处理方法,其特征在于,包括:
将指定逻辑封装成通用程序并保存;
接收客户端提交的可编程语句;
根据所述可编程语句和所述通用程序封装生成应用程序;
为所述应用程序申请对应的集群资源以运行所述应用程序。
2.根据权利要求1所述的方法,其特征在于,所述指定逻辑至少包含初始化逻辑块;
所述根据所述可编程语句和所述通用程序封装生成应用程序之后,所述方法还包括:
调用所述通用逻辑对所述应用程序进行初始化。
3.根据权利要求1所述的方法,其特征在于,将指定逻辑封装成通用程序包括:
接收集群运行环境的配置信息;
根据该配置信息创建业务对应的会话状态对象;
在所述会话状态对象中执行所述指定逻辑;
并在所述指定逻辑执行结束之后,将所述指定逻辑的执行结果并保存作为所述通用程序。
4.根据权利要求1所述的方法,其特征在于,所述接收客户端提交的可编程语句包括:
通过应用管理Application Master接收客户端提交的可编程语句;
其中,所述Application Master包括消息接口,所述消息接口包括所述ApplicationMaster与所述客户端之间的交互协议,并用于在所述客户端与所述Application Master之间进行信息交互。
5.根据权利要求4所述的方法,其特征在于,所述Application Master通过所述消息接口向所述客户端反馈所述应用程序的运行状态信息。
6.根据权利要求5所述的方法,其特征在于,所述Application Master通过所述消息接口向所述客户端反馈所述应用程序的运行状态信息包括:
根据所述Application Master的运行日志,获取所述应用程序的运行状态信息;
通过所述消息接口向所述客户端反馈所述应用程序的运行状态信息。
7.根据权利要求4所述的方法,其特征在于,所述可编程语句是结构化查询语言SQL语句,所述消息接口是SQL消息接口。
8.一种业务处理方法,其特征在于,包括:
向服务器提交可编程语句,以使得所述服务器根据所述可编程语句和通用程序封装生成应用程序;以及为所述应用程序申请对应的集群资源以运行所述应用程序,所述通用程序由指定逻辑封装生成;
所述客户端关闭所述应用程序。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
通过消息接口接收所述应用程序的运行状态信息,所述消息接口包括应用管理Application Master与客户端之间的交互协议,并用于在所述客户端与所述ApplicationMaster之间进行信息交互。
10.一种计算机设备,其特征在于,包括:
处理模块,用于将指定逻辑封装成通用程序并保存;
接收模块,用于接收客户端提交的可编程语句;
所述处理模块,用于根据所述可编程语句和所述通用程序封装生成应用程序;为所述应用程序申请对应的集群资源以运行所述应用程序。
11.一种客户端,其特征在于,包括:
发送模块,用于向服务器提交可编程语句,以使得所述服务器根据所述可编程语句和通用程序封装生成应用程序;以及为所述应用程序申请对应的集群资源以运行所述应用程序,所述通用程序由指定逻辑封装生成;
处理模块,用于关闭所述应用程序。
12.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至7或8至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810437912.3A CN110209422B (zh) | 2018-05-09 | 2018-05-09 | 一种业务处理方法、计算机设备和客户端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810437912.3A CN110209422B (zh) | 2018-05-09 | 2018-05-09 | 一种业务处理方法、计算机设备和客户端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110209422A true CN110209422A (zh) | 2019-09-06 |
CN110209422B CN110209422B (zh) | 2021-08-27 |
Family
ID=67778823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810437912.3A Active CN110209422B (zh) | 2018-05-09 | 2018-05-09 | 一种业务处理方法、计算机设备和客户端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110209422B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106161520A (zh) * | 2015-04-02 | 2016-11-23 | 朗新科技股份有限公司 | 大数据应用平台及基于其的交互方法 |
CN106301885A (zh) * | 2016-07-18 | 2017-01-04 | 乐视控股(北京)有限公司 | 统一业务管理的方法和系统 |
US20170177331A1 (en) * | 2015-12-17 | 2017-06-22 | Kersplody Corporation | Method and apparatus for execution of distributed workflow processes |
CN106951552A (zh) * | 2017-03-27 | 2017-07-14 | 重庆邮电大学 | 一种基于Hadoop的用户行为数据处理方法 |
CN106991183A (zh) * | 2017-03-27 | 2017-07-28 | 福建数林信息科技有限公司 | 一种商业智能etl的封装方法及系统 |
CN107491544A (zh) * | 2017-08-25 | 2017-12-19 | 上海德拓信息技术股份有限公司 | 一种增强非关系型数据库分析能力的数据处理平台 |
-
2018
- 2018-05-09 CN CN201810437912.3A patent/CN110209422B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106161520A (zh) * | 2015-04-02 | 2016-11-23 | 朗新科技股份有限公司 | 大数据应用平台及基于其的交互方法 |
US20170177331A1 (en) * | 2015-12-17 | 2017-06-22 | Kersplody Corporation | Method and apparatus for execution of distributed workflow processes |
CN106301885A (zh) * | 2016-07-18 | 2017-01-04 | 乐视控股(北京)有限公司 | 统一业务管理的方法和系统 |
CN106951552A (zh) * | 2017-03-27 | 2017-07-14 | 重庆邮电大学 | 一种基于Hadoop的用户行为数据处理方法 |
CN106991183A (zh) * | 2017-03-27 | 2017-07-28 | 福建数林信息科技有限公司 | 一种商业智能etl的封装方法及系统 |
CN107491544A (zh) * | 2017-08-25 | 2017-12-19 | 上海德拓信息技术股份有限公司 | 一种增强非关系型数据库分析能力的数据处理平台 |
Non-Patent Citations (2)
Title |
---|
STARK_SUMMER: "spark SQL编程动⼿实战-01", 《OSCCHINA 开源中国社区 HTTPS://MY.OSCHINA.NET/GHOSTMANYUE/BLOG/381397》 * |
少半个西瓜: "SparkSQL+Hbase+HDFS实现SQL完全封装(二)", 《CSDN 博客HTTPS://BLOG.CSDN.NET/CHSONG888/ARTICLE/DETAILS/80238819》 * |
Also Published As
Publication number | Publication date |
---|---|
CN110209422B (zh) | 2021-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021142609A1 (zh) | 信息上报方法、装置、设备和存储介质 | |
CN111542064B (zh) | 一种用于无线接入网的容器编排管理系统及编排方法 | |
CN102185936B (zh) | 一种基于linux操作系统的DNS服务系统和方法 | |
EP3731161A1 (en) | Model application method and system, and model management method and server | |
EP3837604B1 (en) | In situ triggered function as a service within a service mesh | |
CN109358847B (zh) | 一种业务管理平台 | |
CN114253740A (zh) | 基于Linux内核的协议栈数据传输方法及装置 | |
CN108255614A (zh) | 一种基于微服务架构的接口调用系统及方法 | |
CN104123265A (zh) | 一种众核间通信方法及系统 | |
CN109844731A (zh) | 分散式分布式数据库一致性 | |
WO2021238702A1 (zh) | 一种任务的调度方法、计算设备及存储介质 | |
CN101739295A (zh) | 基于进程调用扩展程序的方法和装置 | |
WO2017133487A1 (zh) | 一种任务调度方法、装置和计算机存储介质 | |
CN114710571A (zh) | 数据包处理系统 | |
CN116820527B (zh) | 程序升级方法、装置、计算机设备和存储介质 | |
JP4412369B2 (ja) | 分散型処理システム、分散型処理方法、端末、及び、プログラム | |
CN110209422A (zh) | 一种业务处理方法、计算机设备和客户端 | |
CN116204307A (zh) | 兼容不同计算框架的联邦学习方法和联邦学习系统 | |
CN110381143A (zh) | 作业提交执行方法、装置、设备及计算机存储介质 | |
CN105677033B (zh) | 一种信息的推送方法及系统 | |
CN113515341A (zh) | 一种灵活的分布式ai训练云平台部署方法及相关平台 | |
CN109388482A (zh) | 任务的调度方法、装置及存储介质 | |
CN103761106A (zh) | 流程的控制方法及流程引擎 | |
CN116680209A (zh) | 基于wasm的多智能合约实例管理方法 | |
CN112448977A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |