2015-01-02 2 views
0

Я пытаюсь соединить улей с Билайна или оттенок, так я получаю ниже ошибкиHive - 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

Здесь проблема не с ульем, а с вашими учетными данными в kerberos. Билеты, созданные службой выдачи билетов, остаются в живых в течение определенного количества часов, после которых они истекают. Перед запуском улья вам нужно запустить kinit для создания вашего TGS-билета. Таким образом, вам не придется каждый раз возвращать сервис Hive.

Простым тестом было бы запустить команду 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