Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t让HBase连接到Hadoop_Hadoop_Hbase - Fatal编程技术网

Can';t让HBase连接到Hadoop

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实例,而不是使用本地文件。我把它设

编辑:我能让它工作。我创建了一个教程来演示如何:

设置HBase-site.xml属性时,我可以使HBase正常工作:

<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命令吗。先检查一下。