2012-04-17 22 views
13

Soy nuevo en HBase y Hadoop. He configurado completamente HBase y comencé perfectamente. Ahora, cuando traté de conectarme desde p1 a HBase (donde la configuración de HBase está en p2) usando un cliente Java, entonces arroja una extraña excepción.hbase connection refused

12/04/17 14:36:37 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=192.168.15.20:2181 sessionTimeout=180000 watcher=hconnection 
12/04/17 14:36:38 INFO zookeeper.ClientCnxn: Opening socket connection to server /192.168.15.20:2181 
12/04/17 14:36:38 WARN 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:567) 
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1119) 
12/04/17 14:36:39 INFO zookeeper.ClientCnxn: Opening socket connection to server hbase.local/192.168.15.20:2181 
12/04/17 14:36:39 WARN 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:567) 
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1119) 
12/04/17 14:36:41 INFO zookeeper.ClientCnxn: Opening socket connection to server hbase.local/192.168.15.20:2181 
12/04/17 14:36:41 WARN 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:567) 
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1119) 
12/04/17 14:36:43 INFO zookeeper.ClientCnxn: Opening socket connection to server hbase.local/192.168.15.20:2181 
12/04/17 14:36:43 WARN 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:567) 
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1119) 
12/04/17 14:36:44 INFO zookeeper.ClientCnxn: Opening socket connection to server hbase.local/192.168.15.20:2181 
12/04/17 14:36:44 WARN 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:567) 
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1119) 
12/04/17 14:36:45 INFO zookeeper.ClientCnxn: Opening socket connection to server hbase.local/192.168.15.20:2181 
12/04/17 14:36:45 WARN 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:567) 
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1119) 
12/04/17 14:36:47 INFO zookeeper.ClientCnxn: Opening socket connection to server hbase.local/192.168.15.20:2181 
12/04/17 14:36:47 WARN 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:567) 
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1119) 
12/04/17 14:36:48 INFO zookeeper.ClientCnxn: Opening socket connection to server hbase.local/192.168.15.20:2181 
12/04/17 14:36:48 WARN 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:567) 
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1119) 
12/04/17 14:36:49 INFO zookeeper.ClientCnxn: Opening socket connection to server hbase.local/192.168.15.20:2181 
12/04/17 14:36:49 INFO zookeeper.ZooKeeper: Session: 0x0 closed 
org.apache.hadoop.hbase.ZooKeeperConnectionException: HBase is able to connect to ZooKeeper but the connection closes immediately. This could be a sign that the server has too many connections (30 is the default). Consider inspecting your ZK server logs for that error and then make sure you are reusing HBaseConfiguration as often as you can. See HTable's javadoc for more information. 
    at org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.<init>(ZooKeeperWatcher.java:155) 
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getZooKeeperWatcher(HConnectionManager.java:1002) 
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:304) 
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:295) 
    at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:157) 
    at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:90) 
    at org.apache.hadoop.hbase.client.HBaseAdmin.checkHBaseAvailable(HBaseAdmin.java:1258) 
    at HBaseDemo.main(HBaseDemo.java:55) 
Caused by: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase 
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:90) 
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:42) 
    at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:809) 
    at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:837) 
    at org.apache.hadoop.hbase.zookeeper.ZKUtil.createAndFailSilent(ZKUtil.java:903) 
    at org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.<init>(ZooKeeperWatcher.java:133) 
    ... 7 more 
12/04/17 14:36:49 INFO zookeeper.ClientCnxn: EventThread shut down 
Execution script exiting 

/04/17 17:41:35 INFO zookeeper.ZooKeeper: Client environment:user.name=xyz 
12/04/17 17:41:35 INFO zookeeper.ZooKeeper: Client environment:user.home=/home/xyz 
12/04/17 17:41:35 INFO zookeeper.ZooKeeper: Client environment:user.dir=/opt/xyz/hbase-sample 
12/04/17 17:41:35 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=192.168.15.169:2181 sessionTimeout=180000 watcher=hconnection 
12/04/17 17:41:35 INFO zookeeper.ClientCnxn: Opening socket connection to server /192.168.15.169:2181 
12/04/17 17:41:35 INFO zookeeper.ClientCnxn: Socket connection established to hbase.xyz.com/192.168.15.169:2181, initiating session 
12/04/17 17:41:35 INFO zookeeper.ClientCnxn: Session establishment complete on server hbase.xyz.com/192.168.15.169:2181, sessionid = 0x136c00d59ac0009, negotiated timeout = 180000 
12/04/17 17:41:36 INFO client.HConnectionManager$HConnectionImplementation: getMaster attempt 0 of 1 failed; no more retrying. 
java.net.ConnectException: Connection refused 
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) 
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:567) 
at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206) 
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:604) 
at org.apache.hadoop.hbase.ipc.HBaseClient$Connection.setupIOstreams(HBaseClient.java:328) 
at org.apache.hadoop.hbase.ipc.HBaseClient.getConnection(HBaseClient.java:883) 
at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:750) 
at org.apache.hadoop.hbase.ipc.HBaseRPC$Invoker.invoke(HBaseRPC.java:257) 
at $Proxy4.getProtocolVersion(Unknown Source) 
at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:419) 
at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:393) 
at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:444) 
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:360) 
at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:94) 
at org.apache.hadoop.hbase.client.HBaseAdmin.checkHBaseAvailable(HBaseAdmin.java:1258) 
at HBaseDemo.main(HBaseDemo.java:55) 
HBase is not running! 
Execution script exiting 
+2

Aunque generalmente me gusta más información, en lugar de menos, me pregunto si podría haber impreso un poco menos de esta declaración de error. Repite mucho y termina pareciéndose más a WALLOFTEXT que a cualquier otra cosa. Tal vez no es importante. – theJollySin

+0

gracias por responder. Ahora que he publicado la salida completa, marque – khan

Respuesta

5

he encontrado la solución.

Simplemente eliminando localhost entrada desde mi /etc/hosts. Ahora mi entrada localhost es como 192.169.19.50 [que es mi hbase IP] = localhost en lugar de 127.0.0.1 localhost.

+0

khan - tengo este error cuando estoy ejecutando hbase, hadoop, nutch en el mismo servidor en pseudo modo. ¿Debo editar mi archivo/etc/hosts? – sunskin

+4

Una solución poco dudosa. Debería modificar mejor la propiedad hbase.zookeeper.quorum en el lado del cliente o del servidor. La sugerencia de – user1455836

+0

@ user1455836, y la limpieza del caché de DNS y el reinicio (¿superstición pura?), Funcionó para mí. Para mi Mac, agregué una entrada para 'hbase.zookeeper.quorum' a'/usr/local/Cellar/hbase/1.0.1/libexec/conf/hbase-site.xml' con un valor de ' .local' . Zookeeper ahora está vivo otra vez con todas sus bendiciones, gloria y facilidad de uso. –

4

La respuesta aceptada aquí podría funcionar, pero solo como un efecto secundario.

El problema es que HBase está abriendo un puerto que escucha en localhost (es decir, en loopback) en lugar de en la interfaz externa. Al eliminar la entrada del host local en/etc/hosts, HBase se vincula a la interfaz externa, pero solo porque no puede encontrar el host local. Es probable que esto se convierta en un problema cuando algún daemon quiera escuchar legítimamente o conectarse al servidor local (vía lo) solo.

Puede probar que tiene este problema utilizando telnet para conectarse al puerto 60000 a través de localhost o la IP asignada a la máquina. Es probable que pueda conectarse a través de localhost (porque ahí es donde está enlazado HBase) y no a la IP.

Mejor utilizar el nombre de su máquina en su HBase conf.

+0

Al configurar un clúster para establecer la propiedad "hbase.master" en hbase-site.xml con su nombre de host o IP, ejemplo: 'código hbase.master 192.168.1.111:16000 ' – lourencoccc

3

Suponiendo que ha creado una instancia de la configuración para su HBase, establezca hbase master, el quórum de cuidador de zoo y el padre znode. Más o menos así:

import org.apache.hadoop.hbase.HBaseConfiguration; 

public class CLASS_NAME{ 
    Configuration configuration = new HBaseConfiguration.Create(); 
    configuration.set(hbase master, ""); 
    configuration.set(zookeeper quorum, ""); 
    configuration.set(znode parent, ""); 
}