hbase cannot get log reader问题

来源:互联网 发布:16奥运会中国男篮数据 编辑:程序博客网 时间:2024/09/21 06:20
2017-07-27 17:49:21,106 WARN  [RS_LOG_REPLAY_OPS-slave1:16020-0] regionserver.SplitLogWorker: log splitting of WALs/slave2,16020,1501058134935-splitting/slave2%2C16020%2C1501058134935.default.1501058143995 failed, returning error
java.io.IOException: Cannot get log reader
        at org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:355)
        at org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:267)
        at org.apache.hadoop.hbase.wal.WALSplitter.getReader(WALSplitter.java:853)
        at org.apache.hadoop.hbase.wal.WALSplitter.getReader(WALSplitter.java:777)
        at org.apache.hadoop.hbase.wal.WALSplitter.splitLogFile(WALSplitter.java:298)
        at org.apache.hadoop.hbase.wal.WALSplitter.splitLogFile(WALSplitter.java:236)
        at org.apache.hadoop.hbase.regionserver.SplitLogWorker$1.exec(SplitLogWorker.java:104)
        at org.apache.hadoop.hbase.regionserver.handler.WALSplitterHandler.process(WALSplitterHandler.java:72)
        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:129)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
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.ProtobufLogReader.getCodec(ProtobufLogReader.java:297)
        at org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initAfterCompression(ProtobufLogReader.java:307)
        at org.apache.hadoop.hbase.regionserver.wal.ReaderBase.init(ReaderBase.java:82)
        at org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.init(ProtobufLogReader.java:164)
        at org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:303)
        ... 11 more
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:190)

        at org.apache.hadoop.hbase.util.ReflectionUtils.instantiateWithCustomCtor(ReflectionUtils.java:41)


hregionserver报以上错误,解决办法:

hbase 版本是1.2.6,下载apache-phoenix-4.9.0-HBase-1.2-bin.tar.gz,将其中phoenix-4.9.0-HBase-1.2-server.jar 放入hbase的lib目录即可解决