我试图跟随hbase quickstart,但我似乎已经解决了 . 我正在使用hbase-0.98.7-hadoop2发行版 . 当我用 bin/start-hbase.sh
启动hbase时,我在日志中看到:
2014-11-08 01:40:07,911 INFO [main] util.VersionInfo: HBase 0.98.7-hadoop2
2014-11-08 01:40:07,911 INFO [main] util.VersionInfo: Subversion git://acer/usr/src/hbase -r 800c23e2207aa3f9bddb7e9514d8340bcfb89277
2014-11-08 01:40:07,912 INFO [main] util.VersionInfo: Compiled by apurtell on Wed Oct 8 15:58:11 PDT 2014
2014-11-08 01:40:08,195 INFO [main] server.ZooKeeperServer: Server environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT
2014-11-08 01:40:08,196 INFO [main] server.ZooKeeperServer: Server environment:host.name=vagrant-ubuntu-precise-64
2014-11-08 01:40:08,196 INFO [main] server.ZooKeeperServer: Server environment:java.version=1.7.0_72
2014-11-08 01:40:08,196 INFO [main] server.ZooKeeperServer: Server environment:java.vendor=Oracle Corporation
2014-11-08 01:40:08,196 INFO [main] server.ZooKeeperServer: Server environment:java.home=/usr/lib/jvm/jdk1.7.0_72/jre
[...]
2014-11-08 01:40:18,471 ERROR [RS_OPEN_REGION-vagrant-ubuntu-precise-64:22299-0] handler.OpenRegionHandler:未能打开region = hbase:namespace ,, 1415321583827.49f3bd83d8a3431fe3cd69e565920703 . ,开始回滚全局memstore大小 . java.lang.IllegalStateException:无法实例化区域实例 . org.apache.hadoop.hbase.regionserver.HRegion.newHRegion(HRegion.java:4261)org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:4569)org.apache.hadoop.hbase org.apache.hadoop.hbase.region服.java:4449)org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.openRegion(OpenRegionHandler.java:482)at org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.process(OpenRegionHandler.java:145 )在java.util.concurrent.ThreadPoolExecutor $ Worker的java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)的org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:128) . 在java.lang.Thread.run上运行(ThreadPoolExecutor.java:615)(Thread.java:745)引起:sun.reflect.NativeConstructorAccessorImpl.newInstance0上的java.lang.reflect.InvocationTargetException(Nat ive方法)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang.reflect.Constructor.newInstance(Constructor.java:526)在org.apache.hadoop.hbase.regionserver.HRegion.newHRegion(HRegion.java:4258)... 10更多引起:java.lang.IllegalArgumentException:在org.apache.hadoop.hbase.regionserver.HRegion需要表描述符 . (HRegion.java:555)org.apache.hadoop.hbase.regionserver.HRegion . (HRegion.java:531)... 15更多
现在,当我打开一个HBase shell来创建快速入门中的表时,我明白了
$ bin/hbase shell
2014-11-08 01:47:18,918 INFO [main] Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.98.7-hadoop2, r800c23e2207aa3f9bddb7e9514d8340bcfb89277, Wed Oct 8 15:58:11 PDT 2014
hbase(main):001:0> create 'test', 'cf'
2014-11-08 01:48:44,064 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
ERROR: java.io.IOException: Table Namespace Manager not ready yet, try again later
at org.apache.hadoop.hbase.master.HMaster.getNamespaceDescriptor(HMaster.java:3172)
at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1727)
at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1766)
at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java:40470)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2027)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:108)
at org.apache.hadoop.hbase.ipc.FifoRpcScheduler$1.run(FifoRpcScheduler.java:74)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
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)
JPS报告我有一个HMaster运行:
$ jps
1391 HMaster
1955 Jps
我甚至在 /etc/hosts
127.0.0.1 localhost
127.0.0.1 ubuntu.ubuntu-domain ubuntu
救命?我认为这个包应该是自包含的 . 它不应该依赖于zookeeper的运行版本,对吧?
任何帮助,将不胜感激 . 我在使用Oracle Java 1.7.0_72的Ubuntu 64位上 .
我发现其他人的解决方案是运行HBase 0.94,但这不是最好的解决方案 .
提前致谢 .
3 回答
如果您正在使用独立模式,请将此脚本粘贴到hbase-site.xml中 . 创建目录HBASE并根据您的系统更改脚本 .
然后在hbase-env.sh中设置java路径
然后在.bashrc中给出hbase路径
然后转到hbase的bin目录并运行命令
如果不行,请告诉我
你遇到这个问题是因为你忘了在你的"/.../hbase/conf/regionservers"例子中输入你所有的"Master name and slave name" :( vim / opt / hbase / conf / regionservers)
Master <---this slave1 slave2 slave3 . . .
首先启动zookeeper而不是改变
hbase-env.sh
,如下所示 .