title: How to choose zookeeper and regionserver
body: <p>What is a good practice for setting regionserver and zookeeper quorum ? </p>
  
  <p>I have a small hadoop cluster with 16 nodes. Following the example given in <a href="http://hbase.apache.org/book/example_config.html" rel="nofollow">http://hbase.apache.org/book/example_config.html</a> I choose as regionserver the 16 nodes and a subset of these nodes as zookeeper. </p>
  
  <p>But when one job is launched by a node which is not in the list corresponding to hbase.zookeeper.quorum I get the following error :</p>
  
  <blockquote>
    <p>13/08/23 15:40:05 INFO zookeeper.ClientCnxn: Opening socket connection
    to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to
    authenticate using SASL (unknown error) 13/08/23 15:40:05 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:592)
      at
    org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350)
      at
    org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1068)
    13/08/23 15:40:05 INFO zookeeper.ClientCnxn: Opening socket connection
    to server localhost/127.0.0.1:2181. Will not attempt to authenticate
    using SASL (unknown error) 13/08/23 15:40:05 INFO
    zookeeper.ClientCnxn: Socket connection established to
    localhost/127.0.0.1:2181, initiating session 13/08/23 15:40:05 WARN
    zookeeper.RecoverableZooKeeper: Possibly transient ZooKeeper
    exception:
    org.apache.zookeeper.KeeperException$ConnectionLossException:
    KeeperErrorCode = ConnectionLoss for /hbase/hbaseid 13/08/23 15:40:05
    INFO util.RetryCounter: Sleeping 2000ms before retry #1...</p>
  </blockquote>
  
  <p>So it tries to conncet for 600 sec and then return </p>
  
  <blockquote>
    <p>Task attempt_xxx failed to report status for 60 seconds. Killing!</p>
  </blockquote>
  
  <p>After a few attempts it changes node and if by chance the new node belongs to the zookeeper list then the job finishes with succes. </p>
  
  <p>Is this normal? </p>
  
  <p>I ended up adding all nodes to the zookeeper list but I would like to know if it is a good practice. Also is there anycase where the list of regionserver should differ from the node list? </p>
  
  <p>Thank you</p>