Zeppelin连接Spark实现SQLStdBasedAuthorization权限验证

本文介绍了如何通过改造Zeppelin、Spark和Hive,实现在Zeppelin中使用jdbc连接Spark实现SQLStdBasedAuthorization权限验证。主要内容包括Spark端添加自定义验证类,Hive端暴露RESTful接口进行权限验证,以及Zeppelin端在执行查询前进行权限验证。改造后,实现了多租户、表级鉴权和YARN队列匹配,增强了安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、zeppelin简介

zeppelin是基于Web的可视化交互应用,以notebook为抽象提供服务,支持jdbc、spark、python、md、shell等解析器,其可视化功能非常强大,且提供定时任务和文档共享,非常方便数据分析使用。因为zeppelin先天对spark有很好的支持,故生产上采用它来作为使用spark计算引擎的接口,可是zeppelin的权限功能尚不完善,尤其与spark sql对接使用时不能提供完善的权限验证功能,故需要一些改造。

2、业务背景

当前spark的ThriftServer默认是cli模式(参考Hive的三种权限认证模型),设计上仅支持Storage based Authorization标准的权限验证,不能像hive的HiveServer2一样提供很好的鉴权服务;通过调研,为了让zeppelin通过jdbc连接spark实现SQL based Authorization标准权限验证,本文采用对zeppelin、spark和hive三端进行源代码改造的方式实现更完善的权限验证功能。

3、实现的功能

最终我们实现zeppelin多租户使用,不同用户提交的query对应到不同的yarn的队列上,同时对用户提交的query实现表级鉴权,增强访问安全性。后期还打算对zeppelin使用编码模式提交的SQL进行鉴权,达到全面开放zeppelin的spark应用。

整个验证流程如下图:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值