Hadoop 无法在hbase中创建表

Hadoop 无法在hbase中创建表,hadoop,hbase,Hadoop,Hbase,我已经在我的本地ubuntu虚拟机中安装了hbase,该虚拟机已经在psuedo分发模式下运行hadoop。hadoop版本为3.1.2,hbase版本为2.1.2 我能够获取hbase外壳,但在尝试创建表时,会出现以下错误: hbase(main):001:0> create 'test', 'data' ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing at org.apach

我已经在我的本地ubuntu虚拟机中安装了hbase,该虚拟机已经在psuedo分发模式下运行hadoop。hadoop版本为3.1.2,hbase版本为2.1.2

我能够获取hbase外壳,但在尝试创建表时,会出现以下错误:

hbase(main):001:0> create 'test', 'data'

ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
    at org.apache.hadoop.hbase.master.HMaster.checkInitialized(HMaster.java:2969)
    at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1972)
    at org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:630)
    at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)
    at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:413)
    at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:130)
    at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324)
    at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304)
在进一步的调查中,我在regionserver日志中发现了这个错误

2019-02-12 06:21:21,484 ERROR [RS_OPEN_META-regionserver/ubuntu:16020-0] handler.OpenRegionHandler: Failed open of region=hbase:meta,,1.1588230740
java.lang.NoClassDefFoundError: Could not initialize class org.apache.hadoop.hbase.io.asyncfs.FanOutOneBlockAsyncDFSOutputHelper
    at org.apache.hadoop.hbase.io.asyncfs.AsyncFSOutputHelper.createOutput(AsyncFSOutputHelper.java:51)
    at org.apache.hadoop.hbase.regionserver.wal.AsyncProtobufLogWriter.initOutput(AsyncProtobufLogWriter.java:167)
    at org.apache.hadoop.hbase.regionserver.wal.AbstractProtobufLogWriter.init(AbstractProtobufLogWriter.java:166)
    at org.apache.hadoop.hbase.wal.AsyncFSWALProvider.createAsyncWriter(AsyncFSWALProvider.java:113)
    at org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.createWriterInstance(AsyncFSWAL.java:612)
    at org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.createWriterInstance(AsyncFSWAL.java:124)
    at org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL.rollWriter(AbstractFSWAL.java:756)
    at org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL.rollWriter(AbstractFSWAL.java:486)
    at org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.<init>(AsyncFSWAL.java:251)
    at org.apache.hadoop.hbase.wal.AsyncFSWALProvider.createWAL(AsyncFSWALProvider.java:73)
    at org.apache.hadoop.hbase.wal.AsyncFSWALProvider.createWAL(AsyncFSWALProvider.java:48)
    at org.apache.hadoop.hbase.wal.AbstractFSWALProvider.getWAL(AbstractFSWALProvider.java:152)
    at org.apache.hadoop.hbase.wal.AbstractFSWALProvider.getWAL(AbstractFSWALProvider.java:60)
    at org.apache.hadoop.hbase.wal.WALFactory.getWAL(WALFactory.java:284)
    at org.apache.hadoop.hbase.regionserver.HRegionServer.getWAL(HRegionServer.java:2104)
    at org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.openRegion(OpenRegionHandler.java:284)
    at org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.process(OpenRegionHandler.java:108)
    at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:104)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
2019-02-12 06:21:21484错误[RS\u OPEN\u META-regionserver/ubuntu:16020-0]handler.OpenRegionHandler:region的打开失败=hbase:META,,1.1588230740
java.lang.NoClassDefFoundError:无法初始化类org.apache.hadoop.hbase.io.asyncfs.FanOutOneBlockAsyncDFSOutputHelper
在org.apache.hadoop.hbase.io.asyncfs.asyncfsouthutelper.createOutput(asyncfsouthutelper.java:51)上
位于org.apache.hadoop.hbase.regionserver.wal.AsyncProtobufLogWriter.initOutput(AsyncProtobufLogWriter.java:167)
位于org.apache.hadoop.hbase.regionserver.wal.AbstractProtobufLogWriter.init(AbstractProtobufLogWriter.java:166)
位于org.apache.hadoop.hbase.wal.AsyncFSWALProvider.createAsyncWriter(AsyncFSWALProvider.java:113)
位于org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.createWriterInstance(AsyncFSWAL.java:612)
位于org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.createWriterInstance(AsyncFSWAL.java:124)
位于org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL.rollWriter(AbstractFSWAL.java:756)
位于org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL.rollWriter(AbstractFSWAL.java:486)
位于org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.(AsyncFSWAL.java:251)
位于org.apache.hadoop.hbase.wal.AsyncFSWALProvider.createWAL(AsyncFSWALProvider.java:73)
位于org.apache.hadoop.hbase.wal.AsyncFSWALProvider.createWAL(AsyncFSWALProvider.java:48)
位于org.apache.hadoop.hbase.wal.AbstractFSWALProvider.getWAL(AbstractFSWALProvider.java:152)
位于org.apache.hadoop.hbase.wal.AbstractFSWALProvider.getWAL(AbstractFSWALProvider.java:60)
位于org.apache.hadoop.hbase.wal.WALFactory.getWAL(WALFactory.java:284)
位于org.apache.hadoop.hbase.regionserver.HRegionServer.getWAL(HRegionServer.java:2104)
位于org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.openRegion(OpenRegionHandler.java:284)
位于org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.process(OpenRegionHandler.java:108)
位于org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:104)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
运行(Thread.java:748)
这两个是相关的,有人能提供一个解决方案吗 这是我的hbase-site.xml

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

   <property>
      <name>hbase.zookeeper.property.dataDir</name>
      <value>/home/bithu/hbase-temp</value>
   </property>

  <property>
      <name>hbase.master.port</name>
      <value>7000</value>
   </property>

    <property>
      <name>hbase.regionserver.port</name>
      <value>7010</value>
   </property>

   <property>
      <name>hbase.tmp.dir</name>
      <value>/home/bithu/hbase-temp/tmp</value>
   </property>

<property>
  <name>hbase.unsafe.stream.capability.enforce</name>
  <value>false</value>
</property>
   <property>
     <name>hbase.cluster.distributed</name>
     <value>true</value>
   </property>
</configuration>

hbase.rootdir
hdfs://localhost:9000/hbase
hbase.zookeeper.property.dataDir
/主/比特胡/hbase温度
hbase.master.port
7000
hbase.regionserver.port
7010
hbase.tmp.dir
/home/bithu/hbase temp/tmp
hbase.unsafe.stream.capability.enforce
假的
hbase.cluster.distributed
真的

在Hadoop 3.1.3之上运行Hbase-2.1.5时,我遇到了同样的问题

在hbase-site.xml中添加以下属性可以解决此问题

<property>
   <name>hbase.wal.provider</name>
   <value>filesystem</value>
</property>>

hbase.wal.provider
文件系统
>

在Hadoop 3.1.3之上运行Hbase-2.1.5时,我遇到了同样的问题

在hbase-site.xml中添加以下属性可以解决此问题

<property>
   <name>hbase.wal.provider</name>
   <value>filesystem</value>
</property>>

hbase.wal.provider
文件系统
>

Hbase上次检查时不支持Hadoop 3。因此,
NoClassDefFoundError
我尝试切换到Hadoop 2.9.2,结果仍然相同,我是否需要降级HBase?您可以参考这里的表。看起来Hadoop 3的is已经更新了。但无论如何,
NoClassDef
仍然意味着您缺少一些库,而且
org.apache.hadoop.hbase.io
包可能是hbase的问题,而不是上次我检查时,hadoop hbase不支持hadoop 3。因此,
NoClassDefFoundError
我尝试切换到Hadoop 2.9.2,结果仍然相同,我是否需要降级HBase?您可以参考这里的表。看起来Hadoop 3的is已经更新了。但无论如何,
NoClassDef
仍然意味着您缺少一些库,
org.apache.hadoop.hbase.io
包将是hbase的问题,而不是hadoop的问题