2015-06-04 2 views
0

Я пытаюсь запустить Простую однострунную нить для проекта, подробно описанную here. Я развернул приложение в качестве файла jar в наш кластер hadoop. При попытке запуска, я получаю исключение, трассировку стека:Как я могу передать билет Kerberos в приложение Spring Yarn

[2015-06-04 14:10:45.866] boot - 13669 ERROR [main] --- SpringApplication: Application startup failed 
java.lang.IllegalStateException: Failed to execute CommandLineRunner 
     at org.springframework.boot.SpringApplication.runCommandLineRunners(SpringApplication.java:680) 
     at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:695) 
     at org.springframework.boot.SpringApplication.run(SpringApplication.java:322) 
     at org.springframework.boot.SpringApplication.run(SpringApplication.java:961) 
     at org.springframework.boot.SpringApplication.run(SpringApplication.java:950) 
     at com.aetna.ise.yarn.publish.Application.main(Application.java:21) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56) 
     at java.lang.reflect.Method.invoke(Method.java:620) 
     at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:53) 
     at java.lang.Thread.run(Thread.java:857) 
Caused by: org.springframework.yarn.YarnSystemException: SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS]; nested exception is org.apache.hadoop.security.AccessControlException: SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS] 

Это связано с тем, что наш кластер использует проверку подлинности Kerberos. Есть ли способ передать билет Kerberos в приложение в коде Spring YARN? Я не вижу места для этого.

ответ

1

В настоящее время мы не можем делегировать любые билеты, когда приложение отправлено, но само приложение может использовать кеберосы.

Это объясняется в разделе http://docs.spring.io/spring-hadoop/docs/2.1.2.RELEASE/reference/html/springandhadoop-security.html#literal-spring-hadoop-security-literal-configuration-properties

Например, то, как показано ниже в application.yml (принципалов использования из кластера):

spring: 
    hadoop: 
    fsUri: hdfs://localhost:8020 
    resourceManagerHost: localhost 
    security: 
     userPrincipal: jvalkealahti/neo 
     userKeytab: /usr/local/hadoops/jvalkealahti.keytab 
     authMethod: kerberos 
     namenodePrincipal: hdfs/[email protected] 
     rmManagerPrincipal: yarn/[email protected] 
Смежные вопросы