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,如需转载请自行联系原作者



相关文章
|
5月前
|
SQL Java 数据管理
HiveServer2&beeline
HiveServer2&beeline
24 0
HiveServer2&beeline
|
6月前
|
Web App开发 SQL 资源调度
CDH/CDP中开启kerberos后如何访问HDFS/YARN/HIVESERVER2 等服务的webui
CDH/CDP中开启kerberos后如何访问HDFS/YARN/HIVESERVER2 等服务的webui
|
SQL HIVE Python
[Hive]HiveServer2配置
HiveServer2(HS2)是一个服务器接口,能使远程客户端执行Hive查询,并且可以检索结果。HiveServer2是HiveServer1的改进版,HiveServer1已经被废弃。
3806 0
|
11月前
|
SQL 分布式计算 关系型数据库
启动hive
启动hive
|
8月前
|
SQL 分布式计算 关系型数据库
hadoop集群hive 的安装
hadoop集群hive 的安装
78 0
|
SQL Java 关系型数据库
其它语言通过HiveServer2访问Hive
其它语言访问hive主要是通过hiveserver2服务,HiveServer2(HS2)是一种能使客户端执行Hive查询的服务。HiveServer2可以支持对 HiveServer2 的嵌入式和远程访问,支持多客户端并发和身份认证。旨在为开放API客户端(如JDBC和ODBC)提供更好的支持。
245 0
其它语言通过HiveServer2访问Hive
|
SQL Java 数据库连接
|
Java 数据库连接

热门文章

最新文章