用户任务的处理方法、装置、电子设备和计算机可读介质制造方法及图纸

技术编号:24755603 阅读:44 留言:0更新日期:2020-07-04 09:02
本发明专利技术提供了一种用户任务的处理方法、装置、电子设备和计算机可读介质,涉及计算机的技术领域,包括获取到目标用户通过客户端提交的Spark任务;在获取到所述Spark任务之后,通过超级用户模拟所述目标用户;其中,在将超级用户模拟目标用户之后,允许超级用户利用目标用户的身份信息向Spark工作节点提交Spark任务;控制所述超级用户以所述目标用户的身份向Spark工作节点提交所述Spark任务;以使所述Spark工作节点对所述Spark任务进行处理,本申请缓解了传统的Spark应用不支持多用户提交任务的技术问题。

User task processing method, device, electronic equipment and computer-readable medium

【技术实现步骤摘要】
用户任务的处理方法、装置、电子设备和计算机可读介质
本专利技术涉及计算机的
,尤其是涉及一种用户任务的处理方法、装置、电子设备和计算机可读介质。
技术介绍
ApacheSpark是一个开源集群运算框架,最初是由加州大学柏克莱分校AMPLab所开发。Spark本身是支持认证的,即需要使用Spark的使用者,需要通过用户名和密码的方式进行登录才能正常使用,但是,不同的用户有不同的文件访问权限,因此需要在Spark运行的时候,需要设置用户权限。Spark本身是支持用户权限认证,但是当多个用户需要同时提交任务到一个Spark应用中的时候。由于,Spark无法知道是哪个用户提交的任务,因此,Spark不能认证多个用户权限,也就是说Spark本身不支持多用户提交。在现有技术中,可以通过对各目标数据库进行不同维度的分权控制,各SparkSQL引擎在获取用户输入的语句时,判断其是否具有执行该语句的权限,当多用户协同开发时,每个用户被赋予的权限不同,各自只能在自身所被赋予的权限内操作,实现了更细粒度的按需的保证用户各自数据的安全。该方法需要单独简历数据库,管理权限,并且无法和Hadoop的权限系统集成。同时每次请求需要和全量信息比对,效率低下。本专利的方法直接集成Hadoop权限,且执行效率较高。除此之外,还可以利用Spark任务间调度的特性,对于一些耗时较长的任务,给予用户是否终止该任务的权限,能够让Web用户终止正在运行的Spark任务。该方法启动了多个进程来启动多个SparkApp,其实并没有解决Spark应用中的多用户权限的问题。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种用户任务的处理方法、装置、电子设备和计算机可读介质,以缓解了传统的Spark应用不支持多用户提交任务的技术问题。第一方面,本专利技术实施例提供了一种用户任务的处理方法,应用于Spark的驱动节点,所述方法包括:获取到目标用户通过客户端提交的Spark任务;在获取到所述Spark任务之后,通过超级用户模拟所述目标用户;其中,在将超级用户模拟目标用户之后,允许超级用户利用目标用户的身份信息向Spark工作节点提交Spark任务;控制所述超级用户以所述目标用户的身份向Spark工作节点提交所述Spark任务;以使所述Spark工作节点对所述Spark任务进行处理。进一步地,控制所述超级用户以所述目标用户的身份向Spark工作节点提交所述Spark任务包括:获取所述目标用户的用户信息;将所述目标用户的用户信息作为所述Spark任务的任务属性添加到所述Spark任务的任务队列中,得到目标任务队列;向Spark工作节点发送所述目标任务队列,以实现所述超级用户以所述目标用户的身份向Spark工作节点提交所述Spark任务。进一步地,所述方法还包括:在获取到目标用户通过客户端提交的Spark任务之前,对所述超级用户进行身份认证。进一步地,对所述超级用户进行身份认证包括:向认证服务器发送身份认证请求;其中,所述身份认证请求中包含所述超级用户的身份信息;获取所述认证服务器基于所述身份认证请求返回的第一认证凭证信息,并根据所述第一认证凭证信息认证所述超级用户的身份信息。进一步地,通过超级用户模拟所述目标用户包括:向认证服务器发送第一模拟认证请求,其中,所述第一模拟认证请求表示超级用户请求模拟为目标用户;获取所述认证服务器基于所述第一模拟认证请求反馈的第二认证凭证信息,并根据所述第二认证凭证信息模拟所述目标用户;其中,所述第二认证凭证信息为所述认证服务器在验证出所述目标用户存在的情况下发送的凭证信息。进一步地,所述方法还包括:若所述目标用户不存在,则获取所述认证服务器基于所述模拟认证请求反馈的认证失败信息。第二方面,本专利技术实施例提供了另一种用户任务的处理方法,应用于Spark的工作节点,所述方法包括:获取Spark的驱动节点发送的Spark任务,其中,所述Spark任务为Spark的驱动节点在获取到目标用户通过客户端提交的Spark任务之后,控制超级用户模拟所述目标用户,并以所述目标用户的身份向Spark工作节点提交的Spark任务;基于所述Spark任务的任务内容对所述Spark任务进行处理。进一步地,基于所述Spark任务的任务内容对所述Spark任务进行处理包括:若确定出用于执行所述Spark任务的任务数据未存储在所述Spark的工作节点中,则向HDFS文件系统提交所述Spark任务。进一步地,获取Spark的驱动节点发送的Spark任务包括:获取所述Spark的驱动节点发送的目标任务队列,其中,所述目标任务队列中包含用于表征所述Spark任务的任务属性的所述目标用户的用户信息。进一步地,向HDFS文件系统提交所述Spark任务包括:对所述目标任务队列进行解析,得到所述目标用户的用户信息,并通过所述用户信息将所述超级用户模拟为所述目标用户;控制所述超级用户以所述目标用户的身份向所述HDFS文件系统提交所述Spark任务;以使所述HDFS文件系统对所述Spark任务进行处理。进一步地,通过所述用户信息将所述超级用户模拟为所述目标用户包括:向认证服务器发送第二模拟认证请求,其中,所述第二模拟认证请求表示超级用户请求模拟为目标用户,且所述模拟认证请求中携带所述用户信息;获取所述认证服务器基于所述第二模拟认证请求反馈的第三认证凭证信息,并根据所述第三认证凭证信息模拟所述目标用户;其中,所述第三认证凭证信息为所述认证服务器在验证出所述目标用户存在的情况下发送的凭证信息。第三方面,本专利技术实施例提供了一种用户任务的处理装置,设置于Spark的驱动节点,所述装置包括:驱动节点获取单元,用于获取到目标用户通过客户端提交的Spark任务;驱动节点模拟单元,用于在获取到所述Spark任务之后,通过超级用户模拟所述目标用户;其中,在将超级用户模拟目标用户之后,允许超级用户利用目标用户的身份信息向Spark工作节点提交Spark任务;驱动节点控制单元,用于控制所述超级用户以所述目标用户的身份向Spark工作节点提交所述Spark任务;以使所述Spark工作节点对所述Spark任务进行处理。第四方面,本专利技术实施例提供了一种用户任务的处理装置,设置于Spark的工作节点,所述装置包括:工作节点获取单元,用于获取Spark的驱动节点发送的Spark任务,其中,所述Spark任务为Spark的驱动节点在获取到目标用户通过客户端提交的Spark任务之后,控制超级用户模拟所述目标用户,并以所述目标用户的身份向Spark工作节点提交的Spark任务;工作节点处理单元,用于基于所述Spark任务的任务内容对所述Spark任务进行处理。第五方面,本专利技术实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面或者第二方面中任一项所述的方法的步骤。第六方面,本专利技术实施例提供了一种具有处理器可执行的非易失的程序本文档来自技高网
...

【技术保护点】
1.一种用户任务的处理方法,其特征在于,应用于Spark的驱动节点,所述方法包括:/n获取到目标用户通过客户端提交的Spark任务;/n在获取到所述Spark任务之后,通过超级用户模拟所述目标用户;其中,在将超级用户模拟目标用户之后,允许超级用户利用目标用户的身份信息向Spark工作节点提交Spark任务;/n控制所述超级用户以所述目标用户的身份向Spark工作节点提交所述Spark任务;以使所述Spark工作节点对所述Spark任务进行处理。/n

【技术特征摘要】
1.一种用户任务的处理方法,其特征在于,应用于Spark的驱动节点,所述方法包括:
获取到目标用户通过客户端提交的Spark任务;
在获取到所述Spark任务之后,通过超级用户模拟所述目标用户;其中,在将超级用户模拟目标用户之后,允许超级用户利用目标用户的身份信息向Spark工作节点提交Spark任务;
控制所述超级用户以所述目标用户的身份向Spark工作节点提交所述Spark任务;以使所述Spark工作节点对所述Spark任务进行处理。


2.根据权利要求1所述的方法,其特征在于,控制所述超级用户以所述目标用户的身份向Spark工作节点提交所述Spark任务包括:
获取所述目标用户的用户信息;
将所述目标用户的用户信息作为所述Spark任务的任务属性添加到所述Spark任务的任务队列中,得到目标任务队列;
向Spark工作节点发送所述目标任务队列,以实现所述超级用户以所述目标用户的身份向Spark工作节点提交所述Spark任务。


3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在获取到目标用户通过客户端提交的Spark任务之前,对所述超级用户进行身份认证。


4.根据权利要求3所述的方法,其特征在于,对所述超级用户进行身份认证包括:
向认证服务器发送身份认证请求;其中,所述身份认证请求中包含所述超级用户的身份信息;
获取所述认证服务器基于所述身份认证请求返回的第一认证凭证信息,并根据所述第一认证凭证信息认证所述超级用户的身份信息。


5.根据权利要求1所述的方法,其特征在于,通过超级用户模拟所述目标用户包括:
向认证服务器发送第一模拟认证请求,其中,所述第一模拟认证请求表示超级用户请求模拟为目标用户;
获取所述认证服务器基于所述第一模拟认证请求反馈的第二认证凭证信息,并根据所述第二认证凭证信息模拟所述目标用户;其中,所述第二认证凭证信息为所述认证服务器在验证出所述目标用户存在的情况下发送的凭证信息。


6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述目标用户不存在,则获取所述认证服务器基于所述模拟认证请求反馈的认证失败信息。


7.一种用户任务的处理方法,其特征在于,应用于Spark的工作节点,所述方法包括:
获取Spark的驱动节点发送的Spark任务,其中,所述Spark任务为Spark的驱动节点在获取到目标用户通过客户端提交的Spark任务之后,控制超级用户模拟所述目标用户,并以所述目标用户的身份向Spark工作节点提交的Spark任务;
基于所述Spark任务的任务内容对所述Spark任务进行处理。


8.根据权利要求7所述的方法,其特征在于,基于所述Spark任务的任务内容对所述Spark任务进行处理包括:
若确定出用于执行所述Spark任务的任务数据未存储在所述Spark...

【专利技术属性】
技术研发人员:董则恒周彩冬刘柏李仁杰范长杰胡志鹏
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:浙江;33

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

1