java.lang.NoClassDefFoundError: org/apache/htrace/core/HTraceConfiguration

java.lang.NoClassDefFoundError: org/apache/htrace/core/HTraceConfiguration

我在单机本地模式下使用 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才会出现这个问题

感谢任何帮助!提前致谢!

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

htrace-core-*-incubating.jar 在某些早期版本的 HBase 中缺失 2.x

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

jar复制到$HBASE_HOME/lib,否则

从 Maven 下载 Jar here

并放入$HBASE_HOME/lib

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

祝你好运。