(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 201910444799.6
(22)申请日 2019.05.27
(71)申请人 浪潮软件股份有限公司
地址 250100 山东省济南市高新区浪潮路
1036号
(72)发明人 张睿智 刘传涛
(74)专利代理机构 济南信达专利事务所有限公
司 37100
thrift代理人 阚恭勇
(51)Int.Cl.
G06F 16/21(2019.01)
G06F 16/242(2019.01)
G06F 16/25(2019.01)
(54)发明名称
一种SparkSQL thriftserver查询及操作
Hive的权限控制的方法
(57)摘要
本发明提供一种SparkSQL thriftserver查
询及操作Hive的权限控制的方法,属于大数据数
据库访问权限控制技术领域,本发明通过使用
hive llap服务所拥有的用户身份识别及用户输
入SQL解析,联合Ranger的访问权限控制功能结
合形成中介服务,通过SparkSQL thriftserver
服务对接此中介服务达到了控制权限控制的目
的。权利要求书2页 说明书4页CN 110175164 A 2019.08.27
C N 110175164
A
1.一种SparkSQL thriftserver查询及操作Hive的权限控制的方法,其特征在于,
主要包括:
1)配置sparkSQL thriftserver服务集成Hive llap服务;
2)配置sparkSQL thriftserver代理用户到Hive llap服务中;
3)配置sparkSQL thriftserver集成Hive llap服务通过kerberos权限验证。
2.根据权利要求1所述的方法,其特征在于,
所述配置sparkSQL thriftserver服务集成Hive llap服务,包括在spark配置项` Advanced spark2-env`中的配置方式,即直接在线打包模式或上传jar到服务器直接加载jar模式。
3.根据权利要求2所述的方法,其特征在于,
配置方式包括对spark_thrift_cmd_opts参数的配置。
4.根据权利要求3所述的方法,其特征在于,
所述配置sparkSQL thriftserver代理用户到Hive llap服务中,包括在spark配置项中的设置方式。
5.根据权利要求4所述的方法,其特征在于,
主要是对spark.sql.hive.hiveserver2.jdbc.url参数及Run as end user instead of Hive user参数的配置内容。
6.根据权利要求5所述的方法,其特征在于,
所述配置sparkSQL thriftserver集成Hive llap服务通过kerberos权限验证,包括在spark配置项中的配置内容及在hive配置项中的配置内容。
7.根据权利要求6所述的方法,其特征在于,
在spark配置项中的配置内容,包括`Custom spark2-thrift-sparkconf`中的内容,包括,spark.hadoop.hive.llap.daemon.service.hosts参数、spark.keep er.quorum参数、spark.sql.hive.hiveserver2.jdbc.url.principal参数。
8.根据权利要求7所述的方法,其特征在于,
在hive配置项中的配置内容,进一步包括`Custom hive-interactive-site`及其他配置参数项,包括,hive.llap.daemon.service.hosts参数、keeper.quorum参数、h ive.server2.authentication.kerberos.principal参数、hive.llap.task.keytab.file 参数、hive.llap.task.principal参数。
9.根据权利要求8所述的方法,其特征在于,
具体操作步骤为:
首先,hive llap与Ranger服务相结合,使用Ranger控制Hive,进行配置并启动Hive llap服务;
其次,配置相关的参数,并集成第三方的驱动spark-lla p.jar,达到SparkSQL thriftserver服务首先对接的为Hive llap服务,并开启sparkSQL thriftserver服务的代理用户功能,使用户信息代理到Hive llap服务中,使Hive llap服务对用户进行Ranger鉴权功能;
最后,通过配置相关的参数,在SparkSQL thriftserver服务端直接进行输入想要查询的SQL后,进行权限通过校验;
如果权限校验通过,则进行在sparkSQL thriftserver产生相对应的任务并执行,最终返回查询结果;如果权限校验不通过,则在sparkSQL thriftserver端进行返回权限校验失败的提示内容。
一种SparkSQL thriftserver查询及操作Hive的权限控制的
方法
技术领域
[0001]本发明涉及大数据数据库访问权限控制技术,尤其涉及一种S p a r k S Q L thriftserver查询及操作Hive的权限控制的方法。
背景技术
[0002]随着云时代的来临,大数据查询也吸引了越来越多的关注,数据正在迅速膨胀并变大,它决定着企业的未来发展,虽然很多企业可能并没有意识到数据安全性带来问题的隐患,但是随着时间的推移,人们将越来越多的意识到数据安全性对企业的重要性。[0003]Spark on Hive作为当前大数据领域集结构化存储和高速分布式计算使用最多的技术模型,持续受到工业界的广泛关注。SparkSQL是基于内存的分布式计算框架,并且对Hadoop生态系统有高度的支持,比如支持从HDFS、Hbase、Hive等分布式文件系统读取数据。而且SparkSQL目前发展非常迅速,支持的持久层框架越来越多,并且随着SparkSQL thriftserver服务的出现,通过SparkSQL thriftserver服务直接访问Hive更加方便快捷,数据开发人员直接链接SparkSQL thriftserver服务用SQL语句便可以做数据分析,大幅降低了基于SparkSQ
L的大数据开发难度。但是SparkSQL thriftserver服务也要面临一个问题,即在多用户的应用场景下,使用SparkSQL thriftserver服务在访问Hive数据库时存在着安全问题,无法做到不同用户的访问权限控制。安全访问控制对于商业应用至关重要。因此,对于用户通过Spark SQL访问表的行列权限控制也是重要关键点。无权限控制问题会存在用户可以越权访问其他用户所私有的数据库、数据表,会导致用户数据信息泄露,造成一定的信息安全性影响。
发明内容
[0004]为了解决以上技术问题,本发明提出了一种SparkSQL thriftserver查询及操作Hive的权限控制的方法,使用hive llap服务作为中介服务,sparkSQL thriftserver连接hive llap中介服务,达到Ranger权限控制hive数据库的目的。
[0005]本发明综合利用hive llap服务及ranger服务的权限控制特性,及增加嵌合sparkSQL thriftserver服务对hive llap服务的支持驱动包来达到控制sparkSQL thriftserver服务访问Hive数据源时,可以进行数据库级、数据表级、数据列级、数据行级的细粒度的控制访问权限,且可以直接在Ranger服务控制台中简单明了的进行权限配置。[0006]本发明的技术方案是:
[0007]一种SparkSQL thriftserver查询及操作Hive的权限控制的方法,
[0008]主要包括:
[0009]1)配置sparkSQL thriftserver服务集成Hive llap服务;
[0010]2)配置sparkSQL thriftserver代理用户到Hive llap服务中;
[0011]3)配置sparkSQL thriftserver集成Hive llap服务通过kerberos权限验证。
[0012]进一步的,所述配置sparkSQL thriftserver服务集成Hive llap服务,包括在spark配置项`Advanced spark2-env`中的配置方式,即直接在线打包模式或上传jar到服务器直接加载jar模式。包括对spark_thrift_cmd_opts参数的配置。
[0013]进一步的,所述配置sparkSQL thriftserver代理用户到Hive llap服务中,包括在spark配置项中的设置方式。主要是对spark.sql.hive.hiveserver2.jdbc.url参数及Run as end user instead of Hive user参数的配置内容。
[0014]所述配置sparkSQL thriftserver集成Hive llap服务通过kerberos权限验证,包括在spark配置项中的配置内容及在hive配置项中的配置内容。
[0015]在spark配置项中的配置内容,包括`Custom spark2-thrift-sparkconf`中的内容,包括,spark.hadoop.hive.llap.daemon.service.hosts参数、spark. okeeper.quorum参数、spark.sql.hive.hiveserver2.jdbc.url.principal参数。[0016]在hive配置项中的配置内容,进一步包括`Cu
stom hive-interactive-site`及其他配置参数项,包括,hive.llap.daemon.service.hosts参数、keeper.quorum参数、h i v e.s e r v e r2.a u t h e n t i c a t i o n.k e r b e r o s.p r i n c i p a l参数、hive.llap.task.keytab.file参数、hive.llap.task.principal参数。
[0017]进一步的,
[0018]具体操作步骤为:
[0019]首先,hive llap与Ranger服务相结合,使用Ranger控制Hive,进行配置并启动Hive llap服务;
[0020]其次,配置相关的参数,并集成第三方的驱动spark-llap.jar,达到SparkSQL thriftserver服务首先对接的为Hive llap服务,并开启sparkSQL thriftserver服务的代理用户功能,使用户信息代理到Hive llap服务中,使Hive llap服务对用户进行Ranger鉴权功能;
[0021]最后,通过配置相关的参数,在SparkSQL thriftserver服务端直接进行输入想要查询的SQL后,进行权限通过校验;
[0022]如果权限校验通过,则进行在sparkSQL thriftserver产生相对应的任务并执行,最终返回查询结果;如果权限校验不通过,则在sparkSQL thriftserver端进行返回权限校验失败的提示内容。
[0023]本发明通过使用hive llap服务所拥有的用户身份识别及用户输入SQL解析,联合Ranger的访问权限控制功能结合形成中介服务,通过SparkSQL thriftserver服务对接此中介服务达到了控制权限控制的目的,而且可以做到控制粒度到数据库、数据表、数据列、数据行级别,大幅增强了信息的安全性,使用户只能访问及操作当前用户所拥有的数据库、数据表、数据列、数据行,不能访问他人未授权的数据,防范了用户数据泄露的情况。。
具体实施方式
[0024]为使本发明实施例的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论