복붙노트

[HADOOP] 찾을 수 없습니다 : org.apache.hadoop.security.authentication.util.KerberosUtil

HADOOP

찾을 수 없습니다 : org.apache.hadoop.security.authentication.util.KerberosUtil

내가 하둡, 카프카, 폭풍 클러스터를 구성 클러스터에 폭풍 항아리를 실행하고

내가 로컬 모드 I 폭풍 클러스터에서 실행할 때, 잘 작동에 항아리를 실행할 때, 나는 폭풍 UI에서 각각의 오류를 발견하고있다 :

java.lang.NoSuchMethodError: org.apache.hadoop.security.authentication.util.KerberosUtil.hasKerberosTicket(Ljavax/security/auth/Subject;)Z at 
org.apache.hadoop.security.UserGroupInformation.<init>(UserGroupInformation.java:666) at org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:861) at 
org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:820)

pom.hml

POM 파일을 보려면 여기를 클릭하십시오

내가 찾은 일부 Google 후 나는 우리가 내가 같은 오류를 발견 한 후 하둡 인증의 jar.even를 추가해야 발견

해결법

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

    1.난 당신이 오래된 하둡 항아리를 포장하고 생각합니다.

    난 당신이 오래된 하둡 항아리를 포장하고 생각합니다.

    폭풍 - HDFS POM https://github.com/apache/storm/blob/v1.0.6/external/storm-hdfs/pom.xml를 살펴 보자. 당신이 그늘 플러그인을 사용하는 경우, 당신이 결국 병은 직접 의존성을 통해 가져 전이 포함한 모든 종속성을 포함합니다. 스톰 - HDFS는 하둡 항아리의 목록에 대한 종속성을 선언합니다. 당신은 당신이 기본값에서 하둡의 다른 버전을 사용하려는 경우 당신이 당신의 POM에 하둡 항아리 같은 목록을 선언하는 것이 중요합니다.

    구체적으로 어떤 일이 것은 당신이 그렇게 당신의 POM 그 항아리 (2.6.1)의 기본 버전과 함께 패키지로 도착, 당신의 POM에 하둡 - 인증을 선언하지 않은 것입니다. 하둡 - 인증의 버전 (2.9.1이다) 다른 하둡 항아리와 호환되지 않는 때문에, 당신은 런타임에 예외가.

    당신은 폭풍 HDFS의 가져 오기에서 모든 하둡 단지를 제외하고는 스톰의 lib 디렉토리에 사용하거나 POM에 의존성 목록에 하둡 항아리의 오른쪽 버전을 추가 할 항아리를 넣어해야 하나.

    편집하다: 내가 문제를 찾은 것 같아요. 제공에 당신은 폭풍 코어의 범위를 설정하지 않았습니다. 폭풍 코어는 하둡 - 인증에 따라, 당신은 명시 적으로 선언하지 않았으므로, Maven은 당신이 종속성 트리에 표시되는 위치에 따라 필요로하는 하둡 정식 버전 추측하려고합니다. 하둡 - 인증 폭풍 코어를 통해 하둡 종속성의 일부를 통해 2.9.1하지만, 2.6.1로 표시하기 때문에, 당신은 당신의 항아리에 2.6.1 넣어 얻을 일어난다.

    앞으로 이런 일을 피하려면 Maven의 dependencyManagement 블록 https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Management를 사용해야합니다.

    즉, 당신은 당신의 치어에 다음과 같은 것을 추가해야하고 하둡 항아리의 제외를 제거합니다.

    <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.apache.hadoop</groupId>
                    <artifactId>hadoop-client</artifactId>
                    <version>${hadoop.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.hadoop</groupId>
                    <artifactId>hadoop-auth</artifactId>
                    <version>${hadoop.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.hadoop</groupId>
                    <artifactId>hadoop-common</artifactId>
                    <version>${hadoop.version}</version>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
  2. from https://stackoverflow.com/questions/51187185/not-found-org-apache-hadoop-security-authentication-util-kerberosutil by cc-by-sa and MIT license