windows 启动 hbase 遇到的问题 Failed construction RegionServer

windows 搭建hbase 遇到的问题 Failed construction RegionServer
java.lang.NoClassDefFoundError: org/apache/htrace/core/Tracer$Builder

hadoop 版本 3.3.5

hbase 版本 2.5.5
hbase 使用的是内置zookeeper

当我在cmd 运行 start-hbase.cmd

发生以下异常

img

2023-08-06 13:39:01,088 ERROR [main] regionserver.HRegionServer (HRegionServer.java:<init>(722)) - Failed construction RegionServer
java.lang.NoClassDefFoundError: org/apache/htrace/core/Tracer$Builder
        at org.apache.hadoop.fs.FsTracer.get(FsTracer.java:42)
        at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:3256)
        at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:121)
        at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:3310)
        at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:3278)
        at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:475)
        at org.apache.hadoop.hbase.fs.HFileSystem.<init>(HFileSystem.java:85)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.initializeFileSystem(HRegionServer.java:798)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.<init>(HRegionServer.java:673)
        at org.apache.hadoop.hbase.master.HMaster.<init>(HMaster.java:462)
        at org.apache.hadoop.hbase.master.HMasterCommandLine$LocalHMaster.<init>(HMasterCommandLine.java:322)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
        at org.apache.hadoop.hbase.util.JVMClusterUtil.createMasterThread(JVMClusterUtil.java:124)
        at org.apache.hadoop.hbase.LocalHBaseCluster.addMaster(LocalHBaseCluster.java:222)
        at org.apache.hadoop.hbase.LocalHBaseCluster.<init>(LocalHBaseCluster.java:169)
        at org.apache.hadoop.hbase.LocalHBaseCluster.<init>(LocalHBaseCluster.java:112)
        at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:241)
        at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:147)

hadoop 正常运行

img

感觉可以排除不是hadoop的问题

以下是我hbase 部分配置

hbase-env.cmd

set JAVA_HOME=C:\PROGRA~1\Java\jdk-11
set HBASE_CLASSPATH=G:\hbase-2.5.5\conf
set HBASE_MANAGES_ZK=true

hbase-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>



<configuration>

    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://localhost:9000/hbase</value>
    </property>

    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>G:/hbase-2.5.5/zoo</value>
    </property>


    <property>
        <name>hbase.master.maxclockskew</name>
        <value>180000</value>
        <description>Time difference of regionserver from master</description>
    </property>


    <property>
        <name>hbase.unsafe.stream.capability.enforce</name>
        <value>false</value>
    </property>

    <property> <!-- 增加统计支持 -->
        <name>hbase.coprocessor.user.region.classes</name>
        <value>org.apache.hadoop.hbase.coprocessor.AggregateImplementation</value>
    </property>

</configuration>

把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下

这个问题可能是由于缺少htrace-core依赖库引起的。htrace-core是HBase的一个依赖库,它提供了分布式跟踪功能。在HBase 2.x版本中,htrace-core已经被移除,但在一些旧的配置中可能仍然存在。

要解决这个问题,你可以尝试以下几个步骤:

  1. 确保你的Hadoop和HBase版本兼容。你提到你使用的是Hadoop 3.3.5和HBase 2.5.5,这两个版本是兼容的。

  2. 检查你的HBase配置文件(hbase-site.xml)中是否有关于htrace的配置。如果有,尝试将这些配置项注释掉或删除。

  3. 检查你的HBase依赖库是否正确。确保你的classpath中包含了正确的HBase和Hadoop依赖库,并且没有冲突的版本。你可以尝试重新下载和配置这些依赖库。

  4. 如果你使用的是HBase的内置ZooKeeper,确保你的ZooKeeper配置正确,并且ZooKeeper服务正在运行。

【以下回答由 GPT 生成】

这个问题是由于缺少org/apache/htrace/core/Tracer$Builder类导致的。为了解决这个问题,你需要按照以下步骤进行操作:

步骤1: 检查Hadoop以及HBase的版本兼容性 - 确保你使用的Hadoop版本和HBase版本兼容。在HBase官方文档中查找版本兼容性列表,并确保你的Hadoop和HBase版本匹配。

步骤2: 添加HTrace的依赖 - 下载最新版本的HTrace JAR文件。 - 将HTrace JAR文件复制到HBase的lib目录下。

步骤3: 更新Hadoop类路径 - 打开HBase的hbase-env.sh文件。 - 在HBASE_CLASSPATH变量中添加HTrace JAR文件的路径。

以下是示例命令行代码,在hbase-env.sh文件中添加HTrace JAR文件的路径:

HBASE_CLASSPATH=$HBASE_CLASSPATH:/path/to/htrace-core-<version>.jar
export HBASE_CLASSPATH

步骤4: 重启HBase - 关闭当前运行的HBase进程。 - 使用start-hbase.cmd命令重新启动HBase服务。

通过以上步骤,你应该能够解决“Failed construction RegionServer”错误。如果仍然遇到问题,可能是由于其他配置或环境问题引起的。这种情况下,你可能需要仔细检查Hadoop和HBase的配置以及环境设置,确保它们正确设置并且互相兼容。

希望这些信息对你有所帮助,如果你还有其他问题,请随时提问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

这个实例推荐的方法,你看下是否可以帮助到你:http://www.manongjc.com/detail/54-xgatwjpretdwcgy.html

参考这个https://blog.csdn.net/weixin_44105991/article/details/104474100

🟢 hadoop和hbase下的htrace-core版本你看看一样不,不一样可能会导致这个错误。
你参考一下这篇文章
https://blog.csdn.net/weixin_43325626/article/details/110264365

hadoop的hdfs-site.xml和core-site.xml 配置有问题嘛

援引GPT回答:
这个问题是由于缺少htrace-core库引起的。htrace-core是Hadoop的一个依赖项,HBase也需要使用它。

解决方法如下:

  1. 确保你的Hadoop安装目录下的lib文件夹中存在htrace-core库。如果不存在,你可以从Hadoop的官方网站下载对应版本的htrace-core库,并将它复制到lib文件夹中。

  2. 确保你的HBase安装目录下的lib文件夹中存在htrace-core库。如果不存在,你可以从HBase的官方网站下载对应版本的htrace-core库,并将它复制到lib文件夹中。

  3. 检查你的环境变量是否正确设置。确保JAVA_HOME变量指向你的JDK安装目录。

  4. 重新启动HBase,看看问题是否解决。

如果问题仍然存在,可以尝试以下额外的步骤:

  1. 检查hbase-env.cmd文件中的HBASE_CLASSPATH变量是否正确设置为HBase的conf目录。

  2. 检查hbase-site.xml文件中的配置是否正确设置。特别是hbase.rootdir和hbase.zookeeper.property.dataDir属性。

希望这些步骤可以帮助你解决问题。如果问题仍然存在,请提供更多的错误信息和日志,以便更好地理解问题。