我想测试HBql以简单使用HBase.I遵循HBql网站(http://www.hbql.com/installation.html)中描述的步骤。最后在HBql-console中键入version-command以验证我的安装时,我收到以下消息:
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:zookeeper.version=3.4.4-1386507, built on 09/17/2012 08:33 GMT
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:host.name=aleebi
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.version=1.6.0_18
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.vendor=Sun Microsystems Inc.
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.home=/usr/lib/jvm/java-6-openjdk/jre
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.class.path=:/usr/local/hbase-0.94.2/hbase-0.94.2.jar:/usr/local/hadoop-1.0.4/hadoop-core-1.0.4.jar:/usr/local/hadoop-1.0.4/contrib/index/hadoop-index-1.0.4.jar:/usr/local/hbql-0.90.0.1/hbql-0.90.0.1.jar:/usr/local/hbase-transactional-tableindexed/org/apache/hbase-trx-0.90.0RC3.jar:/usr/local/hbql-0.90.0.1/lib/antlr-runtime-3.1.3.jar:/usr/local/hbql-0.90.0.1/lib/jline-0.9.94.jar:/usr/local/commons-logging-1.1.1/commons-logging-1.1.1.jar:/usr/local/hbase-0.94.2/lib:/usr/local/hadoop-1.0.4/lib:/usr/local/commons-configuration-1.9/commons-configuration-1.9.jar:/usr/local/commons-configuration-1.9/apache-commons-lang.jar:/usr/local/zookeeper-3.4.4/zookeeper-3.4.4.jar:/usr/local/slf4j-1.7.2/slf4j-api-1.7.2.jar:/usr/local/slf4j-1.7.2/slf4j-simple-1.7.2.jar::/usr/local/hbql-0.90.0.1/lib/jline-0.9.94.jar:/usr/local/hbql-0.90.0.1/lib/antlr-runtime-3.1.3.jar:/usr/local/hbql-0.90.0.1/hbql-0.90.0.1
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.library.path=/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server:/usr/lib/jvm/java-6-openjdk/jre/lib/amd64:/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib/jni:/lib:/usr/lib
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.io.tmpdir=/tmp
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.compiler=<NA>
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:os.name=Linux
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:os.arch=amd64
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:os.version=2.6.32-5-amd64
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:user.name=aleebi
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:user.home=/home/aleebi
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:user.dir=/usr/local/hbql-0.90.0.1
[main] INFO org.apache.zookeeper.ZooKeeper - Initiating client connection, connectString=localhost:2181 sessionTimeout=180000 watcher=hconnection
[main-SendThread(localhost:2181)] INFO org.apache.zookeeper.ClientCnxn - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
[main-SendThread(localhost:2181)] WARN org.apache.zookeeper.ClientCnxn - Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:592)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:348)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1068)
24.10.2012 12:57:55 org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper <init>
INFO: The identifier of this process is 4698@aleebi
24.10.2012 12:57:55 org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper retryOrThrow
WARNUNG: Possibly transient ZooKeeper exception: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/master
24.10.2012 12:57:55 org.apache.hadoop.hbase.util.RetryCounter sleepUntilNextRetry
这些消息仅在使用HBql控制台时打印。 HBase在分布式模式下成功运行,在Debian squeeze上将数据存储在HDFS中。您需要更多信息吗?我犯了什么错误?为什么需要SASL,一般情况下不像HBase shell?
也许是一些重要的配置:
hbase-env.sh
hbase_manage_zk=true
HBase的-site.xml中
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2222</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/zookeeper</value>
</property>
谢谢!
答案 0 :(得分:2)
我最近用Nutch和Solr安装了HBase,并遇到了类似的问题。我不确定是否完全相同,不幸的是我不再拥有日志,但它肯定与连接有关。
事实证明,ZooKeeper的默认连接限制太低,在hbase-site.xml
中增加此值为我解决了这个问题:
<property>
<name>hbase.zookeeper.property.maxClientCnxns</name>
<value>1000</value>
</property>
答案 1 :(得分:0)
我遇到了同样的问题。这个答案假设您使用linux并相应地编辑了您的etc / hosts文件(https://stackoverflow.com/a/13540883/1607022)
对于在HBase的配置文件中以及在其上使用的任何内容,zookeeper的客户端端口号必须相同。 解决方案是; (在我的情况下,HBASE 0.90.4与GORA 0.3)检查你的HBASE_HOME / src / main / resources下的hbase-default.xml:
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
HBql下应该有一个hbase-site.xml:
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
<description>Property from ZooKeeper's config zoo.cfg.
The port at which the clients will connect.
</description>
</property>
端口号应该相同。