gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 17:35:47 41 4
gpt4 key购买 nike

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

它有(以及其他依赖项):

    <dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>1.2.0-cdh5.7.2</version>
</dependency>

当应用程序启动并在org.apache.hadoop.hbase.client.ConnectionFactory类中的createConnection方法中到达此代码时:

try{
....
return (Connection) constructor.newInstance(conf, managed, pool, user);
} catch (Exception e) {
throw new IOException(e);
}

抛出并捕获异常,表示:

java.lang.NoClassDefFoundError: org/apache/hadoop/crypto/key/KeyProviderTokenIssuer

所以我在Google中寻找KeyProviderTokenIssuer这个类,但没有找到它应该来自哪里。

为什么系统尝试使用这个类,我应该从哪里获取它? Crypto 包不是 hbase-client 依赖项的一部分,我在 https://mvnrepository.com/ 中没有看到这样的内容

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

我在 Windows 上运行。能有关联吗?

最佳答案

执行几个步骤后我能够解决这个问题:

  • 正在关注 this post ,我下载了hadoop-common-2.2.0-bin-master.zip的文件并将其完全解压到C:\Program Files\apache\hadoop\bin文件夹中

  • 我添加了HADOOP_HOME param 到系统变量,将其指向C:\Program Files\apache\hadoop

  • 我添加到 PATH变量 %HADOOP_HOME%\bin 的值

  • 由于我的 Hadoop 版本是 2.6.0,我检查并确保所有 Hadoop 相关依赖项都在该版本中。

  • 我跑mvn dependency:tree并发现其中一个依赖项 jar 附带了 org.apache.hadoop:hadoop-hdfs-client:jar:3.2.0 的 jar所以我将其从依赖项中排除:

    <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>

一些对我有帮助的网址:

关于java - HBase 客户端 - java.lang.ClassNotFoundException : org. apache.hadoop.crypto.key.KeyProviderTokenIssuer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61043740/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com