Spark与Hive的Beeline运行机制

因为业务中主要使用Spark Thriftserver作为adhoc查询服务,而Spark原生是不支持SQLStdBasedAuthorization,所以需要调研这方面源码,本文将这方面的理解分享给大家,如有错误欢迎指出。

Spark的beeline在很多地方直接沿袭hive的beeline,当然Spark也有很多适应性的本地化改造,下面从数据流的角度来讲解。
(注:Spark源码主要依据spark 2.0.X,Hive的主要依据Hive1.2)

下图为Spark和Hive从beeline为入口,SQL的数据流图。
这里写图片描述

由图可见,以Beeline -> ThriftCLIService ->CLIService -> HiveSessionImpl -> SQLOperation -> Driver 为中线,左边是hive相关的实现,右边是spark相关实现。可见Spark的执行流程实现与Hive有很多相似。

在权限方面,hive thriftserver的表权限检验相关内容在Driver的doAuthorization方法实现,Spark没有走这条路径,所以没有表权限验证功能。

我们对spark的表权限验证实现参考文章Spark立体全方位授权Spark实现SQLStdBasedAuthorization

(完)

关注公众号我们可以更方便沟通交流:水木之椿

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值