HiveServer2 Impersonation

简介:

CDH4.2.0开始支持hiveserver2impersonation,只需要设置参数hive.server2.enable.impersonation(该参数在Hive里是HIVE_SERVER2_KERBEROS_IMPERSONATION,容易被误会和kerberos一起使用)true即可,这样可以使得提交的HQL以提交用户来运行MAPREDUCE而不是运行HiveserverUser,那么具体是如何实现的呢:

当通过ThriftCliService开启一个Session时,如果开启了上面的参数,则会调用CliServiceopenSessionWithImpersonation方法进而SessionManager就会生成一个HiveSession的动态代理HiveSessionImplwithUGI,并把用户的UGI传入进去:

session = (HiveSession)HiveSessionProxy.getProxy(hiveSessionUgi,hiveSessionUgi.getSessionUgi());

hiveSessionUgi.setProxySession(session);

每次执行方法的时候都是通过ShimLoader.getHadoopShims().doAs执行,如果没有指定该参数则是以运行Hiveserver的用户执行.



本文转自MIKE老毕 51CTO博客,原文链接:http://blog.51cto.com/boylook/1311584,如需转载请自行联系原作者



相关文章
|
SQL HIVE Python
[Hive]HiveServer2配置
HiveServer2(HS2)是一个服务器接口,能使远程客户端执行Hive查询,并且可以检索结果。HiveServer2是HiveServer1的改进版,HiveServer1已经被废弃。
4491 0
|
Java 关系型数据库 测试技术
基于SpringBoot的特色农产品销售设计与实现
基于SpringBoot的特色农产品销售设计与实现
6111 1
基于SpringBoot的特色农产品销售设计与实现
hutool excel写数据
hutool excel写数据
178 1
|
存储 分布式计算 Hadoop
深入浅出:Hadoop的start-balancer.sh与hdfs balancer分布式数据均衡
Hadoop的HDFS集群非常容易出现机器与机器之间磁盘利用率不平衡的情况,比如集群中添加新的数据节点。当HDFS出现不平衡状况的时候,将引发很多问题,比如:1、MR程序无法很好地利用本地计算的优势2、机器之间无法达到更好的网络带宽使用率,机器磁盘无法利用等等。
3824 0
|
资源调度 分布式计算 Hadoop
YARN Capacity Scheduler容量调度器(超详细解读)
YARN Capacity Scheduler容量调度器(超详细解读)
1673 0
|
SQL 分布式计算 资源调度
大数据问题排查系列-大数据集群开启 kerberos 认证后 HIVE 作业执行失败
大数据问题排查系列-大数据集群开启 kerberos 认证后 HIVE 作业执行失败
|
存储 Prometheus 运维
大数据平台性能监控指标
大数据平台性能监控指标
大数据平台性能监控指标
|
Java Maven
ivy 配置 maven代理
Ivy 是一个依赖管理工具,直观感受是其跟maven 的作用差不多;但这两个其实是不同的工具: maven 是面向整个项目的工程管理及构建工具;ivy 仅作为依赖管理工具,与ant 高度集成。 需要了解更多不同,可看看这里:http://ant.apache.org/ivy/m2comparison.html   几年前了解到这东西,也是因为 play! 框架内置的依赖使用它进行依赖管理,但至今国内仍然以maven 作为主流依赖管理工具,看来还是先入为主的问题。
3151 0
|
SQL 存储 大数据
10亿+/秒!看阿里如何搞定实时数仓高吞吐实时写入与更新
10亿+/秒!看阿里如何搞定实时数仓高吞吐实时写入与更新
6374 2
10亿+/秒!看阿里如何搞定实时数仓高吞吐实时写入与更新
|
SQL 分布式计算 关系型数据库
CDH环境搭建及部署及常见错误解决方法
Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称“CDH”),基于Web的用户界面,支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop。
2971 1
CDH环境搭建及部署及常见错误解决方法