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.<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
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.<init>(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.<init>(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.<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>