[ 
https://issues.apache.org/jira/browse/HIVE-20922?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Cao Junliang updated HIVE-20922:
--------------------------------
    Component/s: Authentication

> HiveServer2 user is switched to another occasionally
> ----------------------------------------------------
>
>                 Key: HIVE-20922
>                 URL: https://issues.apache.org/jira/browse/HIVE-20922
>             Project: Hive
>          Issue Type: Bug
>          Components: Authentication
>    Affects Versions: 1.2.1
>         Environment: HiveServer2 version: 1.2.1
> Hive and yarn were deployed in same machine.
>            Reporter: Cao Junliang
>            Priority: Major
>
> The HiveServer2(version 1.2.1)authentication configuration is:
>  authentication type: kerberos
>  kerberos principal: hive/h...@dc1.fh.com
> Other infomation:
>  client principal: n...@dc1.fh.com
>  yarn service principal:yarn/_h...@dc1.fh.com
> After the hive service was started, application could use jdbc to access hive 
> service. But sometime later, clients got the exception. The user of the hive 
> service was switched to another one (yarn).
> In my environment, Hive and Yarn were deployed in same machine, the user of 
> yarn service is yarn/_h...@dc1.fh.com. Before the exception occured, the hive 
> service was not restarted.
> ==============================================================
> Main logs:
> 2018-11-11 23:59:35 [HiveServer2-Handler-Pool: Thread-115739] INFO 
> org.apache.hive.service.cli.thrift.ThriftCLIService.OpenSession(294) -Client 
> protocol version: HIVE_CLI_SERVICE_PROTOCOL_V8
>  2018-11-11 23:59:35 [HiveServer2-Handler-Pool: Thread-115739] WARN 
> org.apache.hive.service.cli.thrift.ThriftCLIService.OpenSession(308) -Error 
> opening session: 
>  org.apache.hive.service.cli.HiveSQLException: Failed to open new session: 
> java.lang.RuntimeException: java.lang.RuntimeException: 
> org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException):
>  User: yarn/mas...@dc1.fh.com is not allowed to impersonate nbhd
>  at 
> org.apache.hive.service.cli.session.SessionManager.openSession(SessionManager.java:266)
>  at 
> org.apache.hive.service.cli.CLIService.openSessionWithImpersonation(CLIService.java:202)
>  at 
> org.apache.hive.service.cli.thrift.ThriftCLIService.getSessionHandle(ThriftCLIService.java:402)
>  at 
> org.apache.hive.service.cli.thrift.ThriftCLIService.OpenSession(ThriftCLIService.java:297)
>  at 
> org.apache.hive.service.cli.thrift.TCLIService$Processor$OpenSession.getResult(TCLIService.java:1253)
>  at 
> org.apache.hive.service.cli.thrift.TCLIService$Processor$OpenSession.getResult(TCLIService.java:1238)
>  at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
>  at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
>  at 
> org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge$Server$TUGIAssumingProcessor.process(HadoopThriftAuthBridge.java:692)
>  at 
> org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:285)
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>  at java.lang.Thread.run(Thread.java:745)
>  Caused by: java.lang.RuntimeException: java.lang.RuntimeException: 
> org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException):
>  User: yarn/mas...@dc1.fh.com is not allowed to impersonate nbhd
>  at 
> org.apache.hive.service.cli.session.HiveSessionProxy.invoke(HiveSessionProxy.java:83)
>  at 
> org.apache.hive.service.cli.session.HiveSessionProxy.access$000(HiveSessionProxy.java:36)
>  at 
> org.apache.hive.service.cli.session.HiveSessionProxy$1.run(HiveSessionProxy.java:63)
>  at java.security.AccessController.doPrivileged(Native Method)
>  at javax.security.auth.Subject.doAs(Subject.java:415)
>  at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
>  at 
> org.apache.hive.service.cli.session.HiveSessionProxy.invoke(HiveSessionProxy.java:59)
>  at com.sun.proxy.$Proxy19.open(Unknown Source)
>  at 
> org.apache.hive.service.cli.session.SessionManager.openSession(SessionManager.java:258)
>  ... 12 more
>  Caused by: java.lang.RuntimeException: 
> org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException):
>  User: yarn/mas...@dc1.fh.com is not allowed to impersonate nbhd
>  at 
> org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:522)
>  at 
> org.apache.hive.service.cli.session.HiveSessionImpl.open(HiveSessionImpl.java:137)
>  at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
>  at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  at java.lang.reflect.Method.invoke(Method.java:606)
>  at 
> org.apache.hive.service.cli.session.HiveSessionProxy.invoke(HiveSessionProxy.java:78)
>  ... 20 more
>  Caused by: 
> org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException):
>  User: yarn/mas...@dc1.fh.com is not allowed to impersonate nbhd
>  at org.apache.hadoop.ipc.Client.call(Client.java:1468)
>  at org.apache.hadoop.ipc.Client.call(Client.java:1399)
>  at 
> org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:232)
>  at com.sun.proxy.$Proxy14.getFileInfo(Unknown Source)
>  at 
> org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getFileInfo(ClientNamenodeProtocolTranslatorPB.java:752)
>  at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
>  at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  at java.lang.reflect.Method.invoke(Method.java:606)
>  at 
> org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)
>  at 
> org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
>  at com.sun.proxy.$Proxy15.getFileInfo(Unknown Source)
>  at org.apache.hadoop.hdfs.DFSClient.getFileInfo(DFSClient.java:1988)
>  at 
> org.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(DistributedFileSystem.java:1118)
>  at 
> org.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(DistributedFileSystem.java:1114)
>  at 
> org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
>  at 
> org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1114)
>  at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1400)
>  at 
> org.apache.hadoop.hive.ql.session.SessionState.createRootHDFSDir(SessionState.java:596)
>  at 
> org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java:554)
>  at 
> org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:508)
>  ... 25 more
>  2018-11-11 23:59:40 [HiveServer2-Handler-Pool: Thread-115741] INFO 
> org.apache.hive.service.cli.thrift.ThriftCLIService.OpenSession(294) -Client 
> protocol version: HIVE_CLI_SERVICE_PROTOCOL_V8
>  2018-11-11 23:59:40 [HiveServer2-Handler-Pool: Thread-115741] WARN 
> org.apache.hive.service.cli.thrift.ThriftCLIService.OpenSession(308) -Error 
> opening session: 
>  org.apache.hive.service.cli.HiveSQLException: Failed to open new session: 
> java.lang.RuntimeException: java.lang.RuntimeException: 
> org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException):
>  User: yarn/mas...@dc1.fh.com is not allowed to impersonate nbhd
>  at 
> org.apache.hive.service.cli.session.SessionManager.openSession(SessionManager.java:266)
>  at 
> org.apache.hive.service.cli.CLIService.openSessionWithImpersonation(CLIService.java:202)
>  at 
> org.apache.hive.service.cli.thrift.ThriftCLIService.getSessionHandle(ThriftCLIService.java:402)
>  at 
> org.apache.hive.service.cli.thrift.ThriftCLIService.OpenSession(ThriftCLIService.java:297)
>  at 
> org.apache.hive.service.cli.thrift.TCLIService$Processor$OpenSession.getResult(TCLIService.java:1253)
>  at 
> org.apache.hive.service.cli.thrift.TCLIService$Processor$OpenSession.getResult(TCLIService.java:1238)
>  at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
>  at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
>  at 
> org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge$Server$TUGIAssumingProcessor.process(HadoopThriftAuthBridge.java:692)
>  at 
> org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:285)
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>  at java.lang.Thread.run(Thread.java:745)
>  Caused by: java.lang.RuntimeException: java.lang.RuntimeException: 
> org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException):
>  User: yarn/mas...@dc1.fh.com is not allowed to impersonate nbhd
>  at 
> org.apache.hive.service.cli.session.HiveSessionProxy.invoke(HiveSessionProxy.java:83)
>  at 
> org.apache.hive.service.cli.session.HiveSessionProxy.access$000(HiveSessionProxy.java:36)
>  at 
> org.apache.hive.service.cli.session.HiveSessionProxy$1.run(HiveSessionProxy.java:63)
>  at java.security.AccessController.doPrivileged(Native Method)
>  at javax.security.auth.Subject.doAs(Subject.java:415)
>  at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
>  at 
> org.apache.hive.service.cli.session.HiveSessionProxy.invoke(HiveSessionProxy.java:59)
>  at com.sun.proxy.$Proxy19.open(Unknown Source)
>  at 
> org.apache.hive.service.cli.session.SessionManager.openSession(SessionManager.java:258)
>  ... 12 more
>  Caused by: java.lang.RuntimeException: 
> org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException):
>  User: yarn/mas...@dc1.fh.com is not allowed to impersonate nbhd
>  at 
> org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:522)
>  at 
> org.apache.hive.service.cli.session.HiveSessionImpl.open(HiveSessionImpl.java:137)
>  at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
>  at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  at java.lang.reflect.Method.invoke(Method.java:606)
>  at 
> org.apache.hive.service.cli.session.HiveSessionProxy.invoke(HiveSessionProxy.java:78)
>  ... 20 more
>  Caused by: 
> org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException):
>  User: yarn/mas...@dc1.fh.com is not allowed to impersonate nbhd
>  at org.apache.hadoop.ipc.Client.call(Client.java:1468)
>  at org.apache.hadoop.ipc.Client.call(Client.java:1399)
>  at 
> org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:232)
>  at com.sun.proxy.$Proxy14.getFileInfo(Unknown Source)
>  at 
> org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getFileInfo(ClientNamenodeProtocolTranslatorPB.java:752)
>  at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
>  at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  at java.lang.reflect.Method.invoke(Method.java:606)
>  at 
> org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)
>  at 
> org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
>  at com.sun.proxy.$Proxy15.getFileInfo(Unknown Source)
>  at org.apache.hadoop.hdfs.DFSClient.getFileInfo(DFSClient.java:1988)
>  at 
> org.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(DistributedFileSystem.java:1118)
>  at 
> org.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(DistributedFileSystem.java:1114)
>  at 
> org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
>  at 
> org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1114)
>  at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1400)
>  at 
> org.apache.hadoop.hive.ql.session.SessionState.createRootHDFSDir(SessionState.java:596)
>  at 
> org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java:554)
>  at 
> org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:508)
>  ... 25 more
>  2018-11-11 23:59:45 [HiveServer2-Handler-Pool: Thread-115743] INFO 
> org.apache.hive.service.cli.thrift.ThriftCLIService.OpenSession(294) -Client 
> protocol version: HIVE_CLI_SERVICE_PROTOCOL_V8
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to