2015-01-02 57 views
0

我嘗試連接用直線或色調蜂箱,所以我讓下面的錯誤我蜂巢 - 的InvocationTargetException空

2015-01-01 11:56:18,312 ERROR sentry.org.apache.thrift.transport.TSaslTransport: SASL negotiation failure 
javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)] 
     at com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(GssKrb5Client.java:212) 
     at sentry.org.apache.thrift.transport.TSaslClientTransport.handleSaslStartMessage(TSaslClientTransport.java:94) 
     at sentry.org.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:253) 
     at sentry.org.apache.thrift.transport.TSaslClientTransport.open(TSaslClientTransport.java:1) 
     at org.apache.sentry.provider.db.service.thrift.SentryPolicyServiceClient$UgiSaslClientTransport.baseOpen(SentryPolicyServiceClient.java:115) 
     at org.apache.sentry.provider.db.service.thrift.SentryPolicyServiceClient$UgiSaslClientTransport.access$000(SentryPolicyServiceClient.java:77) 
     at org.apache.sentry.provider.db.service.thrift.SentryPolicyServiceClient$UgiSaslClientTransport$1.run(SentryPolicyServiceClient.java:101) 
     at org.apache.sentry.provider.db.service.thrift.SentryPolicyServiceClient$UgiSaslClientTransport$1.run(SentryPolicyServiceClient.java:99) 
     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:1554) 
     at org.apache.sentry.provider.db.service.thrift.SentryPolicyServiceClient$UgiSaslClientTransport.open(SentryPolicyServiceClient.java:99) 
     at org.apache.sentry.provider.db.service.thrift.SentryPolicyServiceClient.<init>(SentryPolicyServiceClient.java:151) 
     at org.apache.sentry.provider.db.SimpleDBProviderBackend.<init>(SimpleDBProviderBackend.java:52) 
     at org.apache.sentry.provider.db.SimpleDBProviderBackend.<init>(SimpleDBProviderBackend.java:48) 
     at sun.reflect.GeneratedConstructorAccessor12.newInstance(Unknown Source) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
     at org.apache.sentry.binding.hive.authz.HiveAuthzBinding.getAuthProvider(HiveAuthzBinding.java:247) 
     at org.apache.sentry.binding.hive.authz.HiveAuthzBinding.<init>(HiveAuthzBinding.java:88) 
     at org.apache.sentry.binding.hive.authz.HiveAuthzBinding.<init>(HiveAuthzBinding.java:81) 
     at org.apache.sentry.binding.hive.HiveAuthzBindingHook.<init>(HiveAuthzBindingHook.java:98) 
     at sun.reflect.GeneratedConstructorAccessor11.newInstance(Unknown Source) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
     at java.lang.Class.newInstance(Class.java:374) 
     at org.apache.hadoop.hive.ql.hooks.HookUtils.getHooks(HookUtils.java:59) 
     at org.apache.hadoop.hive.ql.Driver.getHooks(Driver.java:1162) 
     at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:440) 
     at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:352) 
     at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:995) 
     at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:988) 
     at org.apache.hive.service.cli.operation.SQLOperation.prepare(SQLOperation.java:98) 
     at org.apache.hive.service.cli.operation.SQLOperation.run(SQLOperation.java:163) 
     at org.apache.hive.service.cli.session.HiveSessionImpl.runOperationWithLogCapture(HiveSessionImpl.java:514) 
     at org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementInternal(HiveSessionImpl.java:222) 
     at org.apache.hive.service.cli.session.HiveSessionImpl.executeStatement(HiveSessionImpl.java:204) 
     at org.apache.hive.service.cli.CLIService.executeStatement(CLIService.java:168) 
     at org.apache.hive.service.cli.thrift.ThriftCLIService.ExecuteStatement(ThriftCLIService.java:316) 
     at org.apache.hive.service.cli.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1373) 
     at org.apache.hive.service.cli.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1358) 
     at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39) 
     at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39) 
     at org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge20S$Server$TUGIAssumingProcessor.process(HadoopThriftAuthBridge20S.java:608) 
     at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:244) 
     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: GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt) 
     at sun.security.jgss.krb5.Krb5InitCredential.getInstance(Krb5InitCredential.java:147) 
     at sun.security.jgss.krb5.Krb5MechFactory.getCredentialElement(Krb5MechFactory.java:121) 
     at sun.security.jgss.krb5.Krb5MechFactory.getMechanismContext(Krb5MechFactory.java:187) 
     at sun.security.jgss.GSSManagerImpl.getMechanismContext(GSSManagerImpl.java:223) 
     at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:212) 
     at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:179) 
     at com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(GssKrb5Client.java:193) 
     ... 47 more 
2015-01-01 11:56:18,313 WARN org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:hive/[email protected] (auth:KERBEROS) cause:sentry.org.apache.thrift.transport.TTransportException: GSS initiate failed 
2015-01-01 11:56:18,313 ERROR org.apache.hadoop.hive.ql.Driver: FAILED: InvocationTargetException null 
java.lang.reflect.InvocationTargetException 
     at sun.reflect.GeneratedConstructorAccessor12.newInstance(Unknown Source) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
     at org.apache.sentry.binding.hive.authz.HiveAuthzBinding.getAuthProvider(HiveAuthzBinding.java:247) 
     at org.apache.sentry.binding.hive.authz.HiveAuthzBinding.<init>(HiveAuthzBinding.java:88) 
     at org.apache.sentry.binding.hive.authz.HiveAuthzBinding.<init>(HiveAuthzBinding.java:81) 
     at org.apache.sentry.binding.hive.HiveAuthzBindingHook.<init>(HiveAuthzBindingHook.java:98) 
     at sun.reflect.GeneratedConstructorAccessor11.newInstance(Unknown Source) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
     at java.lang.Class.newInstance(Class.java:374) 
     at org.apache.hadoop.hive.ql.hooks.HookUtils.getHooks(HookUtils.java:59) 
     at org.apache.hadoop.hive.ql.Driver.getHooks(Driver.java:1162) 
     at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:440) 
     at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:352) 
     at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:995) 
     at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:988) 
     at org.apache.hive.service.cli.operation.SQLOperation.prepare(SQLOperation.java:98) 
     at org.apache.hive.service.cli.operation.SQLOperation.run(SQLOperation.java:163) 
     at org.apache.hive.service.cli.session.HiveSessionImpl.runOperationWithLogCapture(HiveSessionImpl.java:514) 
     at org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementInternal(HiveSessionImpl.java:222) 
     at org.apache.hive.service.cli.session.HiveSessionImpl.executeStatement(HiveSessionImpl.java:204) 
     at org.apache.hive.service.cli.CLIService.executeStatement(CLIService.java:168) 
     at org.apache.hive.service.cli.thrift.ThriftCLIService.ExecuteStatement(ThriftCLIService.java:316) 
     at org.apache.hive.service.cli.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1373) 
    at org.apache.hive.service.cli.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1358) 
     at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39) 
     at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39) 
     at org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge20S$Server$TUGIAssumingProcessor.process(HadoopThriftAuthBridge20S.java:608) 
     at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:244) 
     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.reflect.UndeclaredThrowableException 
     at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1567) 
     at org.apache.sentry.provider.db.service.thrift.SentryPolicyServiceClient$UgiSaslClientTransport.open(SentryPolicyServiceClient.java:99) 
     at org.apache.sentry.provider.db.service.thrift.SentryPolicyServiceClient.<init>(SentryPolicyServiceClient.java:151) 
     at org.apache.sentry.provider.db.SimpleDBProviderBackend.<init>(SimpleDBProviderBackend.java:52) 
     at org.apache.sentry.provider.db.SimpleDBProviderBackend.<init>(SimpleDBProviderBackend.java:48) 
     ... 33 more 
Caused by: sentry.org.apache.thrift.transport.TTransportException: GSS initiate failed 
     at sentry.org.apache.thrift.transport.TSaslTransport.sendAndThrowMessage(TSaslTransport.java:221) 
     at sentry.org.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:297) 
     at sentry.org.apache.thrift.transport.TSaslClientTransport.open(TSaslClientTransport.java:1) 
     at org.apache.sentry.provider.db.service.thrift.SentryPolicyServiceClient$UgiSaslClientTransport.baseOpen(SentryPolicyServiceClient.java:115) 
     at org.apache.sentry.provider.db.service.thrift.SentryPolicyServiceClient$UgiSaslClientTransport.access$000(SentryPolicyServiceClient.java:77) 
     at org.apache.sentry.provider.db.service.thrift.SentryPolicyServiceClient$UgiSaslClientTransport$1.run(SentryPolicyServiceClient.java:101) 
     at org.apache.sentry.provider.db.service.thrift.SentryPolicyServiceClient$UgiSaslClientTransport$1.run(SentryPolicyServiceClient.java:99) 
     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:1554) 
     ... 37 more 

我已經找到臨時分辨率:

如果我每天重啓蜂巢服務的話,它的正常工作但是我每天都必須重新啓動。

我想要永久的解決方案。任何人都可以請幫我解決它?

回答

0

這裏的問題不在於Hive,而在於您的Kerberos證書。票證授予服務生成的票據保持活動狀態達到特定的小時數,然後過期。在運行配置單元之前,您需要運行kinit來生成您的TGS票證。這樣您就不必每次都重新啓動Hive服務。

一個簡單的測試就是運行hlist服務之前和之後運行klist命令。

+0

但是每次運行kinit都可行。我已經爲krbtgt設置了7天的續訂時間。 – Viru

+0

不確定krbtgt續訂是否有幫助。你可以看看下面的鏈接:http://www.cloudera.com/content/cloudera/en/documentation/cdh4/v4-3-0/CDH4-Security-Guide/cdh4sg_topic_17.html – Arani

+0

仍然是同樣的問題。 – Viru