HBase客户端-java.lang.ClassNotFoundException:org.apache.hadoop.crypto.key.KeyProviderTokenIssuer

HBase客户端-java.lang.ClassNotFoundException:org.apache.hadoop.crypto.key.KeyProviderTokenIssuer,java,reflection,hbase,hbase-client,Java,Reflection,Hbase,Hbase Client,我正在尝试运行一个连接到HBase的遗留项目 它具有(除其他依赖项外): 抛出并捕获一个异常,表示: java.lang.NoClassDefFoundError: org/apache/hadoop/crypto/key/KeyProviderTokenIssuer 所以我在谷歌上寻找这类KeyProviderTokenIssuer,但没有找到它的来源 为什么系统试图使用这个类,我应该从哪里获得它Crypto包不属于hbase客户端依赖项的一部分,我在中没有看到这种情况 这里是否可能存在库不

我正在尝试运行一个连接到HBase的遗留项目

它具有(除其他依赖项外):

抛出并捕获一个异常,表示:

java.lang.NoClassDefFoundError: org/apache/hadoop/crypto/key/KeyProviderTokenIssuer
所以我在谷歌上寻找这类
KeyProviderTokenIssuer
,但没有找到它的来源

为什么系统试图使用这个类,我应该从哪里获得它
Crypto
包不属于
hbase客户端
依赖项的一部分,我在中没有看到这种情况

这里是否可能存在库不匹配


我在Windows上运行。它是否相关?

在执行了以下几个步骤后,我能够克服这个问题:

  • 接下来,我下载了
    hadoop-common-2.2.0-bin-master.zip文件,并将其完全解压缩到
    C:\Program Files\apache\hadoop\bin

  • 我将
    HADOOP\u HOME
    param添加到系统变量中,将其指向
    C:\Program Files\apache\HADOOP

  • 我在
    路径
    变量中添加了
    %HADOOP\u HOME%\bin的值

  • 因为我的Hadoop版本是2.6.0,所以我检查并确保所有与Hadoop相关的依赖项都在该版本中

  • 我运行了
    mvn dependency:tree
    ,发现其中一个依赖项jar附带了
    org.apache.hadoop:hadoop hdfs client:jar:3.2.0
    ,因此我将其从依赖项中排除:

    <dependency>
        <groupId>com.example</groupId>
        <artifactId>bla</artifactId>
        <version>1.0.1</version>
        <exclusions>
            <exclusion>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-hdfs-client</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
    
    com.example
    


在执行以下几个步骤后,我能够克服此问题:

  • 接下来,我下载了
    hadoop-common-2.2.0-bin-master.zip文件,并将其完全解压缩到
    C:\Program Files\apache\hadoop\bin

  • 我将
    HADOOP\u HOME
    param添加到系统变量中,将其指向
    C:\Program Files\apache\HADOOP

  • 我在
    路径
    变量中添加了
    %HADOOP\u HOME%\bin的值

  • 因为我的Hadoop版本是2.6.0,所以我检查并确保所有与Hadoop相关的依赖项都在该版本中

  • 我运行了
    mvn dependency:tree
    ,发现其中一个依赖项jar附带了
    org.apache.hadoop:hadoop hdfs client:jar:3.2.0
    ,因此我将其从依赖项中排除:

    <dependency>
        <groupId>com.example</groupId>
        <artifactId>bla</artifactId>
        <version>1.0.1</version>
        <exclusions>
            <exclusion>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-hdfs-client</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
    
    com.example
    


您好,您能否详细说明为什么特别排除
hadoop hdfs客户端
?您好,您能否详细说明为什么特别排除
hadoop hdfs客户端
<dependency>
    <groupId>com.example</groupId>
    <artifactId>bla</artifactId>
    <version>1.0.1</version>
    <exclusions>
        <exclusion>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs-client</artifactId>
        </exclusion>
    </exclusions>
</dependency>