복붙노트

[HADOOP] 어떻게 봄 원사 응용 프로그램에 Kerberos 티켓을 전달할 수 있습니다

HADOOP

어떻게 봄 원사 응용 프로그램에 Kerberos 티켓을 전달할 수 있습니다

나는 여기에 설명 된 간단한 단일 프로젝트 원사 응용 프로그램을 실행하려합니다. 나는 우리의 하둡 클러스터에 jar 파일로 응용 프로그램을 배포했습니다. 실행하려고 할 때, 나는 예외를 얻고, 아래 스택 추적 :

[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 티켓을 전달할 수있는 방법이 있습니까? 나는 그것을 할 수있는 장소가 표시되지 않습니다.

해결법

  1. ==============================

    1.신청서가 제출 될 때 우리는 현재 어떤 티켓을 위임 할 수 있지만, 응용 프로그램 자체는 Kerberos를 사용할 수 있습니다.

    신청서가 제출 될 때 우리는 현재 어떤 티켓을 위임 할 수 있지만, 응용 프로그램 자체는 Kerberos를 사용할 수 있습니다.

    이 섹션에 설명되어 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/neo@LOCALDOMAIN
          rmManagerPrincipal: yarn/neo@LOCALDOMAIN
    
  2. from https://stackoverflow.com/questions/30651452/how-can-i-pass-a-kerberos-ticket-to-spring-yarn-application by cc-by-sa and MIT license