本申请涉及大数据领域,特别是涉及一种基于具象状态传输服务进行作业管理的方法和装置。
背景技术:
近年来,flink在大数据实时流计算领域发展迅猛,已成为业界在该领域的第一选择。基于flink框架开发的应用程序也称为作业,这些作业需要提交到安装了flink处理引擎的分布式集群环境运行,用于针对实时流式数据实现不同的业务逻辑处理。
而在现有技术中,传统的基于命令行的flink作业管理方法中,无法提供统一的对外接口,技术人员需额外登录远程服务器进行操作。
因此,传统的flink作业管理方法中,作业管理效率低下,难以满足用户高效进行flink作业管理的需求。
技术实现要素:
为了解决上述技术问题,本申请提供了一种基于具象状态传输服务进行flink作业管理的方法和装置,可以提供统一的对外接口,用户不需要额外远程登录,提高了进行flink作业管理的效率。
本申请实施例公开了如下技术方案:
第一方面,本申请实施例提供了一种基于具象状态传输服务进行flink作业管理的方法,包括:
flink具象状态传输服务接口接收flink作业对应的超文本传输协议请求,所述超文本传输协议请求中包含用户身份信息和请求信息,所述请求信息为包括待上传作业的上传请求、启动作业参数、作业列表查询请求、查看运行中作业请求、查看作业检查点请求或取消作业请求,所述用户身份信息用于登录所述flink具象状态传输服务接口;
flink具象状态传输服务接口对所述请求信息自动进行解析,以便将所述请求信息转化成符合flink集群执行格式的命令;
flink具象状态传输服务接口向flink集群发送所述命令,以便所述flink集群执行所述命令。
可选的,在所述flink具象状态传输服务接口接收flink作业对应的超文本传输协议请求之后,所述flink具象状态传输服务接口对所述请求信息自动进行解析之前,所述方法还包括:
当所述请求信息为包括待上传作业的上传请求、作业列表查询请求、查看运行中作业请求或查看作业检查点请求时,flink具象状态传输服务接口判断所述请求信息中所述作业的启动作业参数是否在flink作业信息库中存在,若存在,则加载所述信息库中所述作业的启动作业参数补充所述请求信息。
可选的,在所述flink具象状态传输服务接口向flink集群发送所述命令后,所述方法还包括:
flink具象状态传输服务接口接收所述命令执行结果;
flink具象状态传输服务接口将所述执行结果发送给用户。
可选的,在将所述执行结果发送给用户后,所述方法还包括:
flink具象状态传输服务接口将作业基本信息、日志信息和作业执行结果信息发送到flink作业信息库保存。
可选的,所述作业基本信息包括:
作业名、作业启动参数、作业描述和作业编号。
第二方面,本申请实施例提供了一种基于具象状态传输服务进行flink作业管理的装置,所述flink作业为基于flink框架开发的应用程序,所述装置包括:
超文本传输协议请求接收单元,用于接收flink作业对应的超文本传输协议请求,所述超文本传输协议请求中包含用户身份信息和请求信息,所述请求信息为包括待上传作业的上传请求、启动作业参数、作业列表查询请求、查看运行中作业请求、查看作业检查点请求或取消作业请求,所述用户身份信息用于登录所述flink具象状态传输服务接口;
请求信息自动解析单元,用于对所述请求信息自动进行解析,以便将所述请求信息转化成符合flink集群执行格式的命令;
命令发送单元,用于向flink集群发送所述命令,以便所述flink集群执行所述命令。
可选的,所述装置还包括:
启动作业参数加载单元,用于在所述接收flink作业对应的超文本传输协议请求之后,所述对所述请求信息自动进行解析之前,当所述请求信息为包括待上传作业的上传请求、作业列表查询请求、查看运行中作业请求或查看作业检查点请求时,判断所述请求信息中所述作业的启动作业参数是否在flink作业信息库中存在,若存在,则加载所述信息库中所述作业的启动作业参数补充所述请求信息。
可选的,所述装置还包括:
结果接收单元,用于在所述向flink集群发送所述命令后,接收所述命令执行结果;
结果发送单元,用于将所述执行结果发送给用户。
可选的,所述装置还包括:
信息发送单元,用于在将所述执行结果发送给用户后,将作业基本信息、日志信息和作业执行结果信息发送到flink作业信息库保存。
可选的,所述作业基本信息包括:
作业名、作业启动参数、作业描述和作业编号。
由上述技术方案可以看出,与现有技术相比,本申请实施例具有以下优点:
在本申请实施例中,flink具象状态传输服务接口接收flink作业对应的超文本传输协议请求,所述超文本传输协议请求中包含用户身份信息和请求信息,所述用户身份信息用于登录所述flink具象状态传输服务接口,flink具象状态传输服务接口对所述请求信息自动进行解析,flink具象状态传输服务接口向flink集群发送所述命令。由此可见,本申请实施例中,可以提供统一的对外接口,用户不需要额外远程登录,提高了进行flink作业管理的效率,满足了用户高效进行flink作业管理的需求。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种传统的基于命令行flink作业管理方法的示意图;
图2为本申请实施例提供的一种基于具象状态传输服务进行flink作业管理的方法的流程图;
图3为本申请实施例提供的一种基于具象状态传输服务进行flink作业管理的方法的应用场景的示意图;
图4为本申请实施例提供的一种基于具象状态传输服务进行flink作业管理的具体处理过程的流程图;
图5为本申请实施例提供的通过flink具象状态传输服务接口进行程序包上传的方法的示意图;
图6为本申请实施例提供的通过flink具象状态传输服务接口进行作业提交的方法的示意图;
图7为本申请实施例提供的通过flink具象状态传输服务接口查看所有作业的方法的示意图;
图8为本申请实施例提供的通过flink具象状态传输服务接口查看运行中作业的方法的示意图;
图9为本申请实施例提供的通过flink具象状态传输服务接口查看作业检查点的方法的示意图;
图10为本申请实施例提供的通过flink具象状态传输服务接口取消作业的方法的示意图;
图11为本申请实施例提供的一种基于具象状态传输服务进行flink作业管理的装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
近年来,flink在大数据实时流计算领域发展迅猛,已成为业界在该领域的第一选择。基于flink框架开发的应用程序也称为作业,这些作业需要提交到安装了flink处理引擎的分布式集群环境运行,用于针对实时流式数据实现不同的业务逻辑处理。
目前,传统的基于命令行的flink作业管理方法中,如图1所示,传统的flink作业无法提供统一的对外接口,技术人员需额外登录远程服务器进行操作。管理通常采用命令行的方式实现,包括直接启动作业、停止作业、查询作业列表等命令实现。命令行的执行过程主要分为以下4个步骤。(a)首先,需要将编译好的flink程序包通过文件传输的方式上传到flink集群的加载机;(b)其次,技术人员通过终端登录应用程序所在加载机运行flink命令行;(c)然后,flink解析模块会对命令行解释;(d)最后,解析后的命令被flink调度执行,完成作业提交、停止、查看、列表查看及检查点管理等相关操作。
需要说明的是,实时流处理,相对批量处理而言,是一种针对流式数据的处理加工方式。flink是由阿帕奇(apache)软件基金会开发的开源流处理框架,其核心是分布式流数据处理引擎。作业,是由技术人员编写flink程序代码提交到服务端,形成的一种运行态应用。
因此,结合图1和上述针对命令行的执行过程的4个步骤可知,在传统的flink作业管理方法中,作业管理效率低下,难以满足用户高效进行flink作业管理的需求。
为了解决上述技术问题,本申请提供了一种基于具象状态传输服务进行flink作业管理的方法和装置,可以提供统一的对外接口,用户不需要额外远程登录,提高了进行flink作业管理的效率。下面结合附图,详细说明本发明的各种非限制性实施方式。
示例性方法
参见图2,该图为本申请实施例提供的一种基于具象状态传输服务进行flink作业管理的方法的流程图,该方法可以包括:
为了更好的理解,图3为本申请实施例提供的一种基于具象状态传输服务进行flink作业管理的方法的应用场景的示意图,图4为本申请实施例提供的一种基于具象状态传输服务进行flink作业管理的具体处理过程的流程图,下面将图2结合图3和图4进行介绍
s101,flink具象状态传输服务接口接收flink作业对应的超文本传输协议请求,所述超文本传输协议请求中包含用户身份信息和请求信息,所述请求信息为包括待上传作业的上传请求、启动作业参数、作业列表查询请求、查看运行中作业请求、查看作业检查点请求或取消作业请求,所述用户身份信息用于登录所述flink具象状态传输服务接口。
在本申请实施例中,参见图3,技术人员可以将flink作业管理的命令和参数通过超文本传输协议(http)请求报文发送到flink具象状态传输服务接口(flinkrestfulapi)。即对应着图4中的s1和s2。
而在传输的超文本传输协议请求中,包含用户身份信息和请求信息,用户身份信息里包含着能够合法登录flink具象状态传输服务接口的信息,通过用户身份信息和请求信息一起传输,统一了对外接口,即通过flink具象状态传输服务接口这一个接口,即可实现用户登录和请求信息的接收,用户无需额外登录。
需要说明的是,flink具象状态传输服务(restful)是一种网络应用程序的设计风格和开发方式,超文本传输协议(http协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议,flink具象状态传输服务接口(flinkrestfulapi),api也称为应用程序接口,是软件系统不同组成部分衔接的约定。
具体的,请求信息中可以包含待上传作业的上传请求、启动作业参数、作业列表查询请求、查看运行中作业请求、查看作业检查点请求或取消作业请求等。
其中,当请求信息为包含待上传作业的上传请求时,参见图5所示,用户可以将开发好的程序包通过超文本传输协议请求的方式发送到flink具象状态传输服务接口;当请求信息为启动作业参数时,参见图6所示,用户可以通过超文本传输协议请求的方式将启动作业参数发送到flink具象状态传输服务接口;当请求信息为作业列表查询请求时,参见图7所示,用户可以将作业列表查询请求以超文本传输协议请求的方式发送到flink具象状态传输服务接口;当请求信息为查看运行中作业请求时,参见图8,用户可以将查询运行中作业请求以超文本传输协议的方式发送到flink具象状态传输服务接口;当请求信息为查看作业检查点请求时,参见图9,用户可以将查看作业检查点请求以超文本传输协议的方式发送到flink具象状态传输服务接口;当请求信息为取消作业请求时,参见图10,用户可以将取消作业请求以超文本传输协议的方式发送到flink具象状态传输服务接口。
其中,作业检查点的侧重点是“容错”,即flink作业以外失败并重启之后,能够直接从早先打下的作业检查点恢复运行,且不影响作业逻辑的准确性。
s102,flink具象状态传输服务接口对所述请求信息自动进行解析,以便将所述请求信息转化成符合flink集群执行格式的命令。
在本申请实施例中,参见图3,当flink具象状态传输服务接口接收到超文本传输协议请求时,自动的对请求信息进行解析,以便将请求信息转化成符合flink集群执行格式的命令。对应着图4中的s4。
相对于传统的基于命令行的flink作业管理方法,从flink加载机到命令行解析,需要用户进行相应点击操作,本申请中的flink具象状态传输服务接口在接到超文本传输协议时,可以自动的对其中的请求信息进行解析,不需要用户任何的点击操作,即可实现解析,即在本申请实施例中除了在发送超文本传输协议时,需要用户的参与,在后续步骤中均不需要用户的参与,节省了时间,提升了效率,改善了用户的使用体验。
此外,在步骤s101之后,即在flink具象状态传输服务接口接收flink作业对应的超文本传输协议请求之后,flink具象状态传输服务接口对请求信息自动进行解析之前,当请求信息为包括待上传作业的上传请求、作业列表查询请求、查看运行中作业请求或查看作业检查点请求时,flink具象状态传输服务接口还可以判断请求信息中作业的启动作业参数是否在flink作业信息库中存在,若存在,则加载信息库中作业的启动作业参数补充请求信息。对应着图4中的s3。
在传统的基于命令行的flink作业管理方法中,远程命令操作一次只能传输一个请求,举例来说,当上传的请求为待上传作业的上传请求时,若上传的这个作业曾经上传并进行启动过,flink具象状态传输服务接口可以将作业基本信息、日志信息和作业执行结果信息发送到flink作业信息库中保存,其中,作业基本信息包括:作业名、作业启动参数、作业描述和作业编号。当flink具象状态传输服务接口再接收到超文本传输协议请求时,可以先判断超文本传输协议中请求信息中的作业的启动参数是否在信息库中存在,若存在,则可以加载信息库中作业的启动作业参数补充请求信息。
通过从信息库中加载已有的启动作业参数,就不需要再用超文本传输协议请求来再传输一次启动作业参数,或者在作业取消后,可以从信息库中调用相同的参数再次重新启动作业,减少了用户的操作,无需用户再重新发送其动作也参数,节省了时间,提升了效率,改善了用户的使用体验。
若判断得到请求信息中作业的启动作业参数不在flink作业信息库中存在,则跳过图4中的s3步骤,直接进行图4中的s4。
s103,flink具象状态传输服务接口向flink集群发送所述命令,以便所述flink集群执行所述命令。
在本申请实施例中,参见图3,当flink具象状态传输服务接口将请求信息转化成了符合flink集群执行格式的命令后,解析后的命令被flink集群调度执行,对应着图4中的s5。
此外,当解析后的命令被flink集群调度执行完成后,flink集群会将执行后的结果返回到flink具象状态传输服务接口,由flink具象状态传输服务接口将执行的结果返回发送给用户。
具体的,参见图5所示,当通过flink具象状态传输服务接口进行程序包上传时,flink具象状态传输服务接口不仅接收flink集群发来的上传结果,并且将上传结果通过超文本传输协议响应的形式反馈给用户。
参见图6所示,当通过flink具象状态传输服务接口进行作业提交时,flink具象状态传输服务接口不仅接收flink集群发来的提交结果,并且将提交结果通过超文本传输协议响应的形式反馈给用户。
参见图7所示,当通过flink具象状态传输服务接口查看所有作业时,flink具象状态传输服务接口不仅接收flink集群发来的作业列表信息,并且将作业列表信息通过超文本传输协议响应的形式反馈给用户。
参见图8所示,当通过flink具象状态传输服务接口查看运行中作业时,flink具象状态传输服务接口不仅接收flink集群发来的运行中作业信息,并且将作业信息通过文本传输协议响应的形式反馈给用户。
参见图9所示,当通过flink具象状态传输服务接口查看作业检查点时,flink具象状态传输服务接口不仅接收flink集群发来的作业检查点信息,并且将作业检查点信息通过文本传输协议响应的形式反馈给用户。
参见图10所示,当通过flink具象状态传输服务接口取消作业时,flink具象状态传输服务接口将取消作业命令发送到flink集群后,可以接收取消作业的结果并将结果反馈给用户,也可以不生成取消作业的结果并不反馈,本申请实施例对此不作具体限制,图10中仅示出了不反馈的应用场景。
并且,在将执行结果发送给用户后,flink具象状态传输服务接口还可以将作业基本信息、日志信息和作业执行结果信息发送到flink作业信息库保存,便于后期的管理。
其中,作业基本信息包括:作业名、作业启动参数、作业描述和作业编号,日志信息可以包括:作业启停信息、作业的提交用户信息。
在本申请实施例提供的方法中,flink具象状态传输服务接口接收flink作业对应的超文本传输协议请求,所述超文本传输协议请求中包含用户身份信息和请求信息,所述用户身份信息用于登录所述flink具象状态传输服务接口,flink具象状态传输服务接口对所述请求信息自动进行解析,flink具象状态传输服务接口向flink集群发送所述命令。由此可见,本申请实施例中,可以提供统一的对外接口,用户不需要额外远程登录,提高了进行flink作业管理的效率,满足了用户高效进行flink作业管理的需求。
示例性设备
参见图11,为本申请实施例提供的一种基于具象状态传输服务进行flink作业管理的装置的示意图,所述flink作业为基于flink框架开发的应用程序,所述装置包括:
超文本传输协议请求接收单元201,用于接收flink作业对应的超文本传输协议请求,所述超文本传输协议请求中包含用户身份信息和请求信息,所述请求信息为包括待上传作业的上传请求、启动作业参数、作业列表查询请求、查看运行中作业请求、查看作业检查点请求或取消作业请求,所述用户身份信息用于登录所述flink具象状态传输服务接口;
请求信息自动解析单元202,用于对所述请求信息自动进行解析,以便将所述请求信息转化成符合flink集群执行格式的命令;
命令发送单元203,用于向flink集群发送所述命令,以便所述flink集群执行所述命令。
可选的,所述装置还包括:
启动作业参数加载单元,用于在所述接收flink作业对应的超文本传输协议请求之后,所述对所述请求信息自动进行解析之前,当所述请求信息为包括待上传作业的上传请求、作业列表查询请求、查看运行中作业请求或查看作业检查点请求时,判断所述请求信息中所述作业的启动作业参数是否在flink作业信息库中存在,若存在,则加载所述信息库中所述作业的启动作业参数补充所述请求信息。
可选的,所述装置还包括:
结果接收单元,用于在所述向flink集群发送所述命令后,接收所述命令执行结果;
结果发送单元,用于将所述执行结果发送给用户。
可选的,所述装置还包括:
信息发送单元,用于在将所述执行结果发送给用户后,将作业基本信息、日志信息和作业执行结果信息发送到flink作业信息库保存。
可选的,所述作业基本信息包括:
作业名、作业启动参数、作业描述和作业编号。
其中,本申请装置各单元或模块的设置可以参照图2所示的方法而实现,在此不再赘述。
利用本申请实施例提供的装置,flink具象状态传输服务接口接收flink作业对应的超文本传输协议请求,所述超文本传输协议请求中包含用户身份信息和请求信息,所述用户身份信息用于登录所述flink具象状态传输服务接口,flink具象状态传输服务接口对所述请求信息自动进行解析,flink具象状态传输服务接口向flink集群发送所述命令。由此可见,本申请实施例中,可以提供统一的对外接口,用户不需要额外远程登录,提高了进行flink作业管理的效率,满足了用户高效进行flink作业管理的需求。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
1.一种基于具象状态传输服务进行作业管理的方法,其特征在于,作业为基于弗林克flink框架开发的应用程序,所述方法包括:
flink具象状态传输服务接口接收flink作业对应的超文本传输协议请求,所述超文本传输协议请求中包含用户身份信息和请求信息,所述请求信息为包括待上传作业的上传请求、启动作业参数、作业列表查询请求、查看运行中作业请求、查看作业检查点请求或取消作业请求,所述用户身份信息用于登录所述flink具象状态传输服务接口;
flink具象状态传输服务接口对所述请求信息自动进行解析,以便将所述请求信息转化成符合flink集群执行格式的命令;
flink具象状态传输服务接口向flink集群发送所述命令,以便所述flink集群执行所述命令。
2.根据权利要求1所述的方法,其特征在于,在所述flink具象状态传输服务接口接收flink作业对应的超文本传输协议请求之后,所述flink具象状态传输服务接口对所述请求信息自动进行解析之前,所述方法还包括:
当所述请求信息为包括待上传作业的上传请求、作业列表查询请求、查看运行中作业请求或查看作业检查点请求时,flink具象状态传输服务接口判断所述请求信息中所述作业的启动作业参数是否在flink作业信息库中存在,若存在,则加载所述信息库中所述作业的启动作业参数补充所述请求信息。
3.根据权利要求1所述的方法,其特征在于,在所述flink具象状态传输服务接口向flink集群发送所述命令后,所述方法还包括:
flink具象状态传输服务接口接收所述命令执行结果;
flink具象状态传输服务接口将所述执行结果发送给用户。
4.根据权利要求3所述的方法,其特征在于,在将所述执行结果发送给用户后,所述方法还包括:
flink具象状态传输服务接口将作业基本信息、日志信息和作业执行结果信息发送到flink作业信息库保存。
5.根据权利要求4所述的方法,其特征在于,所述作业基本信息包括:
作业名、作业启动参数、作业描述和作业编号。
6.一种基于具象状态传输服务进行作业管理的装置,其特征在于,作业为基于弗林克flink框架开发的应用程序,所述装置包括:
超文本传输协议请求接收单元,用于接收flink作业对应的超文本传输协议请求,所述超文本传输协议请求中包含用户身份信息和请求信息,所述请求信息为包括待上传作业的上传请求、启动作业参数、作业列表查询请求、查看运行中作业请求、查看作业检查点请求或取消作业请求,所述用户身份信息用于登录所述flink具象状态传输服务接口;
请求信息自动解析单元,用于对所述请求信息自动进行解析,以便将所述请求信息转化成符合flink集群执行格式的命令;
命令发送单元,用于向flink集群发送所述命令,以便所述flink集群执行所述命令。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
启动作业参数加载单元,用于在所述接收flink作业对应的超文本传输协议请求之后,所述对所述请求信息自动进行解析之前,当所述请求信息为包括待上传作业的上传请求、作业列表查询请求、查看运行中作业请求或查看作业检查点请求时,判断所述请求信息中所述作业的启动作业参数是否在flink作业信息库中存在,若存在,则加载所述信息库中所述作业的启动作业参数补充所述请求信息。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
结果接收单元,用于在所述向flink集群发送所述命令后,接收所述命令执行结果;
结果发送单元,用于将所述执行结果发送给用户。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
信息发送单元,用于在将所述执行结果发送给用户后,将作业基本信息、日志信息和作业执行结果信息发送到flink作业信息库保存。
10.根据权利要求9所述的装置,其特征在于,所述作业基本信息包括:
作业名、作业启动参数、作业描述和作业编号。
技术总结