为了账号安全,请及时绑定邮箱和手机立即绑定

Spark Multi Tenancy系列 - 3 项目简介

标签:
Spark

项目地址

A Fully HiveServer2-like Multi-tenancy Spark Thrift Server Supporting Impersonation and Multi-SparkContext
https://github.com/yaooqinn/multi-tenancy-spark

项目特性

  • 支持静态和动态两种多租户模式(Test only On YARN)

  • 支持SparkContext多实例,以用户区分,单用户只能实例化一个sc

  • 支持hive.server2.doAs.enabled

  • 支持hive.server2.proxy.user做代理执行,动态和静态方式不同

  • 支持Apache Ranger粒度到Column的控制

  • 支持Operation级别的Log(动态Only)

  • 支持High Availability; 动态模式可无缝加入hiveserver2的zk namespace

静态模式

启动
./sbin/start-thriftserver.sh
停止
./sbin/stop-thriftserver.sh
配置
## 静态方式下用户的sc直接在thrift server启动时拉起,也不回收;可通过该配置项指定具体拉起的用户及其scspark.sql.proxy.users                                 user1,user2,...## 指定属于该用户的队列名spark.sql.queue.da_edu                                queue1
spark.sql.queue.beauty                                queue2

其中,这些用户需要能被spark.yarn.principal里的用户代理
在hdfs上有对应权限的staging目录,一般是/user/username
其他配置按照spark常规的配置即可

连接

bin/beeline -u "jdbc:hive2://kent.spark.org:10000/default;principal=hive/app-20.photo.163.org@HADOOP.HZ.NETEASE.COM;hive.server2.proxy.user=user1"

如果配置正确,该session会在user1启动的sc下执行相关的sql

动态模式

启动
./sbin/start-multitenancy-server.sh
停止
./sbin/stop-multitenancy-server.sh
配置

动态的配置只需要按spark常规的配置即可,启动参数除了默认的spark-defaults.conf里面配置以外,可以通过Thrift连接串指定,默认sc是20min空闲自动关闭,所以一旦sc启动了,默写静态的参数就无法再修改了,得等他超时被stop掉

连接
 bin/beeline -u "jdbc:hive2://kent.spark.org::10001/default;principal=hive/_HOST@TEST.AMBARI.NETEASE.COM;hive.server2.proxy.user=spark_test#hive.metastore.warehouse.dir=/user/spark_test/warehouse;spark.executor.memory=10g"

上例中,可指定该spark_test用户执行,设置默认的warehouse路径为/user/spark_test/warehouse;executor内存为10g



作者:风景不美
链接:https://www.jianshu.com/p/1eab071d4f1d


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
数据库工程师
手记
粉丝
42
获赞与收藏
203

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消