hbase启动报错 HRegionServer启动闪退

本文解析了HBase启动时出现的HRegionServer闪退错误,详细分析了堆栈跟踪并指出问题根源在于hbase-site.xml配置中引用了Phoenix但缺少必要jar包。通过在hbase/lib目录下添加Phoenix的两个核心jar文件,成功解决了启动问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hbase启动报错 HRegionServer启动闪退:
2019-01-10 19:42:05,970 ERROR [regionserver/slave2/:16020] regionserver.HRegionServer: Failed init
java.io.IOException: cannot get log writer
at org.apache.hadoop.hbase.wal.DefaultWALProvider.createWriter(DefaultWALProvider.java:373)
at org.apache.hadoop.hbase.regionserver.wal.FSHLog.createWriterInstance(FSHLog.java:724)
at org.apache.hadoop.hbase.regionserver.wal.FSHLog.rollWriter(FSHLog.java:689)
at org.apache.hadoop.hbase.regionserver.wal.FSHLog.rollWriter(FSHLog.java:600)
at org.apache.hadoop.hbase.regionserver.wal.FSHLog.(FSHLog.java:533)
at org.apache.hadoop.hbase.wal.DefaultWALProvider.init(DefaultWALProvider.java:97)
at org.apache.hadoop.hbase.wal.WALFactory.getProvider(WALFactory.java:148)
at org.apache.hadoop.hbase.wal.WALFactory.(WALFactory.java:180)
at org.apache.hadoop.hbase.regionserver.HRegionServer.setupWALAndReplication(HRegionServer.java:1639)
at org.apache.hadoop.hbase.regionserver.HRegionServer.handleReportForDutyResponse(HRegionServer.java:1373)
at org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:911)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.UnsupportedOperationException: Unable to find org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec
at org.apache.hadoop.hbase.util.ReflectionUtils.instantiateWithCustomCtor(ReflectionUtils.java:45)
at org.apache.hadoop.hbase.regionserver.wal.WALCellCodec.create(WALCellCodec.java:103)
at org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter.getCodec(ProtobufLogWriter.java:63)
at org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter.initAfterHeader(ProtobufLogWriter.java:108)
at org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter.init(ProtobufLogWriter.java:98)
at org.apache.hadoop.hbase.wal.DefaultWALProvider.createWriter(DefaultWALProvider.java:362)
… 11 more
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.LauncherAppClassLoader.loadClass(Launcher.java:349)atjava.lang.ClassLoader.loadClass(ClassLoader.java:357)atjava.lang.Class.forName0(NativeMethod)atjava.lang.Class.forName(Class.java:264)atorg.apache.hadoop.hbase.util.ReflectionUtils.instantiateWithCustomCtor(ReflectionUtils.java:41)...16more2019−01−1019:42:05,972FATAL[regionserver/slave2/:16020]regionserver.HRegionServer:ABORTINGregionserverslave2,16020,1547120519438:Unhandled:cannotgetlogwriterjava.io.IOException:cannotgetlogwriteratorg.apache.hadoop.hbase.wal.DefaultWALProvider.createWriter(DefaultWALProvider.java:373)atorg.apache.hadoop.hbase.regionserver.wal.FSHLog.createWriterInstance(FSHLog.java:724)atorg.apache.hadoop.hbase.regionserver.wal.FSHLog.rollWriter(FSHLog.java:689)atorg.apache.hadoop.hbase.regionserver.wal.FSHLog.rollWriter(FSHLog.java:600)atorg.apache.hadoop.hbase.regionserver.wal.FSHLog.&lt;init&gt;(FSHLog.java:533)atorg.apache.hadoop.hbase.wal.DefaultWALProvider.init(DefaultWALProvider.java:97)atorg.apache.hadoop.hbase.wal.WALFactory.getProvider(WALFactory.java:148)atorg.apache.hadoop.hbase.wal.WALFactory.&lt;init&gt;(WALFactory.java:180)atorg.apache.hadoop.hbase.regionserver.HRegionServer.setupWALAndReplication(HRegionServer.java:1639)atorg.apache.hadoop.hbase.regionserver.HRegionServer.handleReportForDutyResponse(HRegionServer.java:1373)atorg.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:911)atjava.lang.Thread.run(Thread.java:748)Causedby:java.lang.UnsupportedOperationException:Unabletofindorg.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodecatorg.apache.hadoop.hbase.util.ReflectionUtils.instantiateWithCustomCtor(ReflectionUtils.java:45)atorg.apache.hadoop.hbase.regionserver.wal.WALCellCodec.create(WALCellCodec.java:103)atorg.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter.getCodec(ProtobufLogWriter.java:63)atorg.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter.initAfterHeader(ProtobufLogWriter.java:108)atorg.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter.init(ProtobufLogWriter.java:98)atorg.apache.hadoop.hbase.wal.DefaultWALProvider.createWriter(DefaultWALProvider.java:362)...11moreCausedby:java.lang.ClassNotFoundException:org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodecatjava.net.URLClassLoader.findClass(URLClassLoader.java:381)atjava.lang.ClassLoader.loadClass(ClassLoader.java:424)atsun.misc.LauncherAppClassLoader.loadClass(Launcher.java:349) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at org.apache.hadoop.hbase.util.ReflectionUtils.instantiateWithCustomCtor(ReflectionUtils.java:41) ... 16 more 2019-01-10 19:42:05,972 FATAL [regionserver/slave2/:16020] regionserver.HRegionServer: ABORTING region server slave2,16020,1547120519438: Unhandled: cannot get log writer java.io.IOException: cannot get log writer at org.apache.hadoop.hbase.wal.DefaultWALProvider.createWriter(DefaultWALProvider.java:373) at org.apache.hadoop.hbase.regionserver.wal.FSHLog.createWriterInstance(FSHLog.java:724) at org.apache.hadoop.hbase.regionserver.wal.FSHLog.rollWriter(FSHLog.java:689) at org.apache.hadoop.hbase.regionserver.wal.FSHLog.rollWriter(FSHLog.java:600) at org.apache.hadoop.hbase.regionserver.wal.FSHLog.&lt;init&gt;(FSHLog.java:533) at org.apache.hadoop.hbase.wal.DefaultWALProvider.init(DefaultWALProvider.java:97) at org.apache.hadoop.hbase.wal.WALFactory.getProvider(WALFactory.java:148) at org.apache.hadoop.hbase.wal.WALFactory.&lt;init&gt;(WALFactory.java:180) at org.apache.hadoop.hbase.regionserver.HRegionServer.setupWALAndReplication(HRegionServer.java:1639) at org.apache.hadoop.hbase.regionserver.HRegionServer.handleReportForDutyResponse(HRegionServer.java:1373) at org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:911) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.UnsupportedOperationException: Unable to find org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec at org.apache.hadoop.hbase.util.ReflectionUtils.instantiateWithCustomCtor(ReflectionUtils.java:45) at org.apache.hadoop.hbase.regionserver.wal.WALCellCodec.create(WALCellCodec.java:103) at org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter.getCodec(ProtobufLogWriter.java:63) at org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter.initAfterHeader(ProtobufLogWriter.java:108) at org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter.init(ProtobufLogWriter.java:98) at org.apache.hadoop.hbase.wal.DefaultWALProvider.createWriter(DefaultWALProvider.java:362) ... 11 more Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.LauncherAppClassLoader.loadClass(Launcher.java:349)atjava.lang.ClassLoader.loadClass(ClassLoader.java:357)atjava.lang.Class.forName0(NativeMethod)atjava.lang.Class.forName(Class.java:264)atorg.apache.hadoop.hbase.util.ReflectionUtils.instantiateWithCustomCtor(ReflectionUtils.java:41)...16more2019011019:42:05,972FATAL[regionserver/slave2/:16020]regionserver.HRegionServer:ABORTINGregionserverslave2,16020,1547120519438:Unhandled:cannotgetlogwriterjava.io.IOException:cannotgetlogwriteratorg.apache.hadoop.hbase.wal.DefaultWALProvider.createWriter(DefaultWALProvider.java:373)atorg.apache.hadoop.hbase.regionserver.wal.FSHLog.createWriterInstance(FSHLog.java:724)atorg.apache.hadoop.hbase.regionserver.wal.FSHLog.rollWriter(FSHLog.java:689)atorg.apache.hadoop.hbase.regionserver.wal.FSHLog.rollWriter(FSHLog.java:600)atorg.apache.hadoop.hbase.regionserver.wal.FSHLog.<init>(FSHLog.java:533)atorg.apache.hadoop.hbase.wal.DefaultWALProvider.init(DefaultWALProvider.java:97)atorg.apache.hadoop.hbase.wal.WALFactory.getProvider(WALFactory.java:148)atorg.apache.hadoop.hbase.wal.WALFactory.<init>(WALFactory.java:180)atorg.apache.hadoop.hbase.regionserver.HRegionServer.setupWALAndReplication(HRegionServer.java:1639)atorg.apache.hadoop.hbase.regionserver.HRegionServer.handleReportForDutyResponse(HRegionServer.java:1373)atorg.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:911)atjava.lang.Thread.run(Thread.java:748)Causedby:java.lang.UnsupportedOperationException:Unabletofindorg.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodecatorg.apache.hadoop.hbase.util.ReflectionUtils.instantiateWithCustomCtor(ReflectionUtils.java:45)atorg.apache.hadoop.hbase.regionserver.wal.WALCellCodec.create(WALCellCodec.java:103)atorg.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter.getCodec(ProtobufLogWriter.java:63)atorg.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter.initAfterHeader(ProtobufLogWriter.java:108)atorg.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter.init(ProtobufLogWriter.java:98)atorg.apache.hadoop.hbase.wal.DefaultWALProvider.createWriter(DefaultWALProvider.java:362)...11moreCausedby:java.lang.ClassNotFoundException:org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodecatjava.net.URLClassLoader.findClass(URLClassLoader.java:381)atjava.lang.ClassLoader.loadClass(ClassLoader.java:424)atsun.misc.LauncherAppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.apache.hadoop.hbase.util.ReflectionUtils.instantiateWithCustomCtor(ReflectionUtils.java:41)
… 16 more

原因是 hbase-site.xml中引用了pheonix的相关配置,hbase/lib 缺少相关jar,所以HRegionServer启动失败。
我这里用的是 hbase-1.2.4 和apache-phoenix-4.14.0-HBase-1.2-bin,将将 phoenix的2个jar:phoenix-core-4.14.0-HBase-1.2.jar 和phoenix-4.14.0-HBase-1.2-server.jar 添加到在hbase/lib目录下,问题解决。

hbase-site.xml 配置如下:

     <property>
           <name>hbase.rootdir</name>
           <value>hdfs://ns1/hbase</value>
    </property>
           <property>
            <name>hbase.cluster.distributed</name>
            <value>true</value>
    </property>
           <property>
            <name>hbase.zookeeper.quorum</name>
            <value>master:2818,slave1:2818,slave2:2818</value>
    </property>
 <property>    
 <name>hbase.security.authorization</name>   
 <value>true</value></property>
<property>  
  <name>hbase.coprocessor.master.classes</name>   
<value>org.apache.hadoop.hbase.security.access.AccessController</value>
 </property>
<property>     <name>hbase.coprocessor.region.classes</name>    
<value>org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
<name>zookeeper.session.timeout</name>
<value>1200000</value>
 </property>
 <property>
<name>phoenix.query.maxGlobalMemoryPercentage</name>
<value>40</value>
</property>
<property>
    <name>hbase.regionserver.wal.codec</name>
    <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>
<property>
    <name>phoenix.query.timeoutMs</name>
    <value>1200000</value>
</property> 
<property>
<name>phoenix.query.keepAliveMs</name>
 <value>1200000</value>
</property>	
<property>
    <name>hbase.regionserver.lease.period</name>
    <value>1200000</value>
</property>
<property>
    <name>hbase.rpc.timeout</name>
    <value>1200000</value>
</property>
<property>
<name>hbase.client.operation.timeout</name>
<value>1200000</value>
</property>
<property>
    <name>hbase.client.scanner.caching</name>
    <value>1000</value>
</property>
<property>
    <name>hbase.client.scanner.timeout.period</name>
    <value>1200000</value>
</property>
	<property>
    <name>hfile.block.cache.size</name>
    <value>0.4</value>
</property>	
<property>
    <name>hbase.hregion.max.filesize</name>
    <value>2147483648</value>
</property>
<property>
    <name>phoenix.coprocessor.maxServerCacheTimeToLiveMs</name>
    <value>1200000</value>
</property>
<property>
<name>hbase.client.ipc.pool.type</name>
<value>RoundRobinPool</value>
</property>
<property>
<name>hbase.client.ipc.pool.size</name>
<value>20</value>
</property>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值