【问题标题】:java.lang.NoClassDefFoundError: org/apache/htrace/core/HTraceConfigurationjava.lang.NoClassDefFoundError: org/apache/htrace/core/HTraceConfiguration
【发布时间】:2020-10-17 19:22:29
【问题描述】:

我在单机本地模式下使用 hadoop 2.9.1 和 hbase 2.1.0。

当我尝试在 bin 文件夹中使用 sudo start-hbase.sh 凝视 HBase 2.1.0 时,出现以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/htrace/core/HTraceConfiguration
    at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:153)
    at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:140)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
    at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:149)
    at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2983)
Caused by: java.lang.ClassNotFoundException: org.apache.htrace.core.HTraceConfiguration
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)

这是我的hbase-site.xml

<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>/home/niyazmohamed/bigdata/upgraded_versions/hbase-2.1.0/hbasedir</value>
    </property>

    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>localhost</value>
    </property>

    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>

    <property>
        <name>hbase.zookeeper.property.clientPort</name>
        <value>2181</value>
    </property>

    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/home/niyazmohamed/bigdata/upgraded_versions/hbase-2.1.0/zookeeper</value>
    </property>

</configuration>

当我尝试启动 HBase 1.2.0 版本时,它启动成功并且hbase shell 也可以访问并且CRUD 操作成功。

Hadoop 和 HBase 路径已设置。只有这样,我才能运行 HBase-1.2.0。

只有 HBase-2.1.0 才会出现这个问题。

任何帮助表示赞赏!提前致谢!

【问题讨论】:

  • 如果现有答案不起作用,请告诉我,我可以看看。
  • 现有答案没有按预期工作,复制 jar 后,HMaster 正在启动,但我得到 java.net.ConnectException: Connection refused error at zookeeper。

标签: java hbase


【解决方案1】:

相关: Starting HBASE, java.lang.ClassNotFoundException: org.apache.htrace.SamplerBuilder

一些早期版本的 HBase 2.x 中缺少htrace-core-*-incubating.jar

如果htrace-core jar$HBASE_HOME/lib/client-facing-thirdparty

jar复制到$HBASE_HOME/lib,否则

从 Maven here 下载 Jar

并放入$HBASE_HOME/lib

您可以在 HBase pom.xml for version hbase 2.1 中看到 htrace 4.2.0 是依赖项的正确版本。 https://github.com/apache/hbase/blob/rel/2.1.0/pom.xml#L1364

祝你好运。

【讨论】:

  • 现有答案没有按预期工作,复制 jar 后,HMaster 正在启动,但我在查看日志时收到 java.net.ConnectException: Connection refused error from zookeeper。有什么我遗漏的具体内容吗?
  • 快速搜索,发现mvnrepository.com/artifact/org.apache.hbase/hbase/2.1.0 org.apache.htrace 的版本不同 4.2.0-incubating 。尝试改用mvnrepository.com/artifact/org.apache.htrace/htrace-core4/…。 @MohamedNiyaz
  • 验证 org.apache.htrace.core.HTraceConfiguration 也存在于这个 jar 中(你可以使用任何类型的 zip 浏览器来做到这一点)
  • 现在这个错误已经消失了,HMaster 正在启动但是得到了类似zookeeper.ClientCnxn: Session 0x1753c71c8d40001 for server null, unexpected error, closing socket connection and attempting reconnect java.net.ConnectException: Connection refused 的错误
  • 我在hbase-site.xml 设置了这个属性,所有错误都消失了,HMaster 启动了。参考这篇文章:stackoverflow.com/questions/48709569/… 解决问题。感谢@OmarAbdelBari 的帮助。
猜你喜欢
  • 1970-01-01
  • 2015-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-10
  • 2018-05-24
  • 2012-11-16
  • 2020-08-31
相关资源
最近更新 更多