Can';t让HBase连接到Hadoop
编辑:我能让它工作。我创建了一个教程来演示如何: 设置HBase-site.xml属性时,我可以使HBase正常工作:Can';t让HBase连接到Hadoop,hadoop,hbase,Hadoop,Hbase,编辑:我能让它工作。我创建了一个教程来演示如何: 设置HBase-site.xml属性时,我可以使HBase正常工作: <name>hbase.rootdir</name> <value>file:///app/hbase/hbase/</value> hbase.rootdir file:///app/hbase/hbase/ 这很好,它按预期将数据存储在目录中,但是我希望它现在连接到正在运行的hadoop实例,而不是使用本地文件。我把它设
<name>hbase.rootdir</name>
<value>file:///app/hbase/hbase/</value>
hbase.rootdir
file:///app/hbase/hbase/
这很好,它按预期将数据存储在目录中,但是我希望它现在连接到正在运行的hadoop实例,而不是使用本地文件。我把它设定为
<value>hdfs://localhost:9000/</value>
hdfs://localhost:9000/
而不是本地文件,它将无法工作。我需要在hadoop端进行一些额外的配置来支持这一点吗?Hadoop正在运行并使用端口9000
以下是我从hadoop获得的core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
fs.default.name
hdfs://localhost:9000
在hbase shell中尝试执行“列表”时,还有以下错误:
hbase(main):001:0> list
TABLE
12/06/28 15:26:29 ERROR zookeeper.RecoverableZooKeeper: ZooKeeper exists failed after 3 retries
12/06/28 15:26:29 WARN zookeeper.ZKUtil: hconnection Unable to set watcher on znode /hbase/master
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/master
at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1021)
at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:154)
at org.apache.hadoop.hbase.zookeeper.ZKUtil.watchAndCheckExists(ZKUtil.java:226)
at org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.start(ZooKeeperNodeTracker.java:76)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:580)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:569)
at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:186)
at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:98)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.jruby.javasupport.JavaConstructor.newInstanceDirect(JavaConstructor.java:275)
at org.jruby.java.invokers.ConstructorInvoker.call(ConstructorInvoker.java:91)
at org.jruby.java.invokers.ConstructorInvoker.call(ConstructorInvoker.java:178)
hbase(main):001:0>列表
桌子
12/06/28 15:26:29错误zookeeper.RecoverableZooKeeper:zookeeper存在重试3次后失败
12/06/28 15:26:29警告zookeeper.ZKUtil:hconnection无法在znode/hbase/master上设置监视程序
org.apache.zookeeper.KeeperException$ConnectionLossException:KeeperErrorCode=ConnectionLoss for/hbase/master
在org.apache.zookeeper.keeprexception.create上(keeprexception.java:99)
在org.apache.zookeeper.keeprexception.create上(keeprexception.java:51)
位于org.apache.zookeeper.zookeeper.exists(zookeeper.java:1021)
位于org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:154)
位于org.apache.hadoop.hbase.zookeeper.ZKUtil.watchAndCheckExists(ZKUtil.java:226)
位于org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.start(ZooKeeperNodeTracker.java:76)
位于org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:580)
位于org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.(HConnectionManager.java:569)
位于org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:186)
位于org.apache.hadoop.hbase.client.HBaseAdmin.(HBaseAdmin.java:98)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:513)
位于org.jruby.javasupport.JavaConstructor.newInstanceDirect(JavaConstructor.java:275)
位于org.jruby.java.invokers.ConstructorInvoker.call(ConstructorInvoker.java:91)
位于org.jruby.java.invokers.ConstructorInvoker.call(ConstructorInvoker.java:178)
我相信Hbase找不到zookeeper仲裁,您必须在Hbase-site.xml中设置Hbase.zookeeper.quorum属性。还要检查类路径设置是否正确,检查此文档
我使用了中建议的配置
停止Ipatables并以root模式启动hbase。可能存在兼容性问题请检查您能告诉我您正在使用的hadoop和hbase的发行版和版本吗?另外,您运行集群的模式是:独立模式?伪分布?分发?最后,您是尝试从集群内部连接到HBase还是从集群外部远程连接到HBase?您能够从shell运行hadoop命令吗。先检查一下。