HBase 2.3.5 无法启动 regionserver,错误日志:java.io.IOException:不支持压缩编解码器 snappy,中止 RS 构建

问题描述

HBase2.3.5

配置:

hbase-site.sh

  <property>
    <name>hbase.regionserver.codecs</name>
    <value>snappy</value>
  </property>

hbase-env.sh

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/hadoop/hadoop-3.2.2/lib/native/:/usr/local/lib
export HBASE_LIBRARY_PATH=$HBASE_LIBRARY_PATH:/opt/hbase/hbase-2.3.5/lib/native/Linux-amd64-64:/usr/local/lib/
export CLAsspATH=$CLAsspATH:$HBASE_LIBRARY_PATH

压缩测试成功:

# hbase org.apache.hadoop.hbase.util.CompressionTest /opt/hbase/RELEASENOTES.md snappy
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/hadoop/hadoop-3.2.2/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/hbase/hbase-2.3.5/lib/client-facing-thirdparty/slf4j-log4j12-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
2021-04-30 09:56:08,405 INFO  [main] metrics.MetricRegistries: Loaded MetricRegistries class org.apache.hadoop.hbase.metrics.impl.MetricRegistriesImpl
2021-04-30 09:56:08,568 INFO  [main] compress.CodecPool: Got brand-new compressor [.snappy]
2021-04-30 09:56:08,575 INFO  [main] compress.CodecPool: Got brand-new compressor [.snappy]
2021-04-30 09:56:08,997 INFO  [main] compress.CodecPool: Got brand-new decompressor [.snappy]
SUCCESS

启动日志:

2021-04-30 09:52:15,612 INFO  [main] util.ServerCommandLine: env:LD_LIBRARY_PATH=:/opt/hadoop/hadoop-3.2.2/lib/native/:/usr/local/lib::/opt/hbase/hbase-2.3.5/lib/native/Linux-amd64-64:/usr/local/lib/:/opt/hbase/hbase-2.3.5/bin/../lib/native/Linux-amd64-64
...
2021-04-30 09:52:15,615 INFO  [main] util.ServerCommandLine: env:HBASE_LIBRARY_PATH=:/opt/hbase/hbase-2.3.5/lib/native/Linux-amd64-64:/usr/local/lib/

但是当start-hbase时,无法启动regionserver,出现如下日志:


2021-04-30 09:52:16,357 INFO [main] metrics.MetricRegistries:加载的 MetricRegistries 类 org.apache.hadoop.hbase.metrics.impl.MetricRegistriesImpl 2021-04-30 09:52:16,471 WARN [main] util.NativeCodeLoader:无法为您的平台加载本机 Hadoop 库...在适用的情况下使用内置 Java 类 2021-04-30 09:52:16,473 WARN [main] util.CompressionTest:无法实例化编解码器:snappy org.apache.hadoop.hbase.DoNotRetryIOException: java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCodeLoader.buildSupportsSnappy()Z 在 org.apache.hadoop.hbase.util.CompressionTest.testCompression(CompressionTest.java:103) 在 org.apache.hadoop.hbase.util.CompressionTest.testCompression(CompressionTest.java:69) 在 org.apache.hadoop.hbase.regionserver.HRegionServer.checkCodecs(HRegionServer.java:835) 在 org.apache.hadoop.hbase.regionserver.HRegionServer.(HRegionServer.java:574) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:423) 在 org.apache.hadoop.hbase.regionserver.HRegionServer.constructregionServer(HRegionServer.java:3096) 在 org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.start(HRegionServerCommandLine.java:63) 在 org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.run(HRegionServerCommandLine.java:87) 在 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76) 在 org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:149) 在 org.apache.hadoop.hbase.regionserver.HRegionServer.main(HRegionServer.java:3114) 引起:java.lang.UnsatisfiedLinkError:org.apache.hadoop.util.NativeCodeLoader.buildSupportsSnappy()Z 在 org.apache.hadoop.util.NativeCodeLoader.buildSupportsSnappy(本机方法) 在 org.apache.hadoop.io.compress.SnappyCodec.checkNativeCodeLoaded(SnappyCodec.java:63) 在 org.apache.hadoop.io.compress.SnappyCodec.getCompressorType(SnappyCodec.java:136) 在 org.apache.hadoop.io.compress.CodecPool.getCompressor(CodecPool.java:150) 在 org.apache.hadoop.io.compress.CodecPool.getCompressor(CodecPool.java:168) 在 org.apache.hadoop.hbase.io.compress.Compression$Algorithm.getCompressor(Compression.java:356) 在 org.apache.hadoop.hbase.util.CompressionTest.testCompression(CompressionTest.java:98) ……还有 13 个 2021-04-30 09:52:16,476 错误 [main] regionserver.HRegionServer:RegionServer 构建失败 java.io.IOException:不支持压缩编解码器 snappy,中止 RS 构建 在 org.apache.hadoop.hbase.regionserver.HRegionServer.checkCodecs(HRegionServer.java:836) 在 org.apache.hadoop.hbase.regionserver.HRegionServer.(HRegionServer.java:574) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:423) 在 org.apache.hadoop.hbase.regionserver.HRegionServer.constructregionServer(HRegionServer.java:3096) 在 org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.start(HRegionServerCommandLine.java:63) 在 org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.run(HRegionServerCommandLine.java:87) 在 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76) 在 org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:149) 在 org.apache.hadoop.hbase.regionserver.HRegionServer.main(HRegionServer.java:3114) 2021-04-30 09:52:16,477 错误 [main] regionserver.HRegionServerCommandLine:区域服务器退出 java.lang.RuntimeException:Regionserver 的构建失败:类 org.apache.hadoop.hbase.regionserver.HRegionServer 在 org.apache.hadoop.hbase.regionserver.HRegionServer.constructregionServer(HRegionServer.java:3099) 在 org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.start(HRegionServerCommandLine.java:63) 在 org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.run(HRegionServerCommandLine.java:87) 在 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76) 在 org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:149) 在 org.apache.hadoop.hbase.regionserver.HRegionServer.main(HRegionServer.java:3114) 引起:java.lang.reflect.InvocationTargetException 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:423) 在 org.apache.hadoop.hbase.regionserver.HRegionServer.constructregionServer(HRegionServer.java:3096) ……还有 5 个 引起:java.io.IOException:不支持压缩编解码器 snappy,中止 RS 构建 在 org.apache.hadoop.hbase.regionserver.HRegionServer.checkCodecs(HRegionServer.java:836) 在 org.apache.hadoop.hbase.regionserver.HRegionServer.(HRegionServer.java:574) ……还有 10 个


解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...