Hadoop 无法在hbase中创建表
我已经在我的本地ubuntu虚拟机中安装了hbase,该虚拟机已经在psuedo分发模式下运行hadoop。hadoop版本为3.1.2,hbase版本为2.1.2 我能够获取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
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的问题