### Eclipse Workspace Patch 1.0 #P hbase Index: core/src/main/java/org/apache/hadoop/hbase/HConstants.java =================================================================== --- core/src/main/java/org/apache/hadoop/hbase/HConstants.java (revision 922684) +++ core/src/main/java/org/apache/hadoop/hbase/HConstants.java (working copy) @@ -93,6 +93,9 @@ /** Default ZooKeeper pause value. In milliseconds. */ static final int DEFAULT_ZOOKEEPER_PAUSE = 2 * 1000; + /** default client port that the zookeeper listens on */ + static final int DEFAULT_ZOOKEPER_CLIENT_PORT = 2181; + /** Parameter name for the root dir in ZK for this cluster */ static final String ZOOKEEPER_ZNODE_PARENT = "zookeeper.znode.parent"; Index: core/src/main/java/org/apache/hadoop/hbase/zookeeper/HQuorumPeer.java =================================================================== --- core/src/main/java/org/apache/hadoop/hbase/zookeeper/HQuorumPeer.java (revision 922684) +++ core/src/main/java/org/apache/hadoop/hbase/zookeeper/HQuorumPeer.java (working copy) @@ -61,6 +61,8 @@ private static final String ZK_CFG_PROPERTY = "hbase.zookeeper.property."; private static final int ZK_CFG_PROPERTY_SIZE = ZK_CFG_PROPERTY.length(); + private static final String ZK_CLIENT_PORT_KEY = ZK_CFG_PROPERTY + + "clientPort"; /** * Parse ZooKeeper configuration from HBase XML config and run a QuorumPeer. @@ -196,6 +198,11 @@ } } + // If clientPort is not set, assign the default + if (zkProperties.getProperty(ZK_CLIENT_PORT_KEY) == null) { + zkProperties.put(ZK_CLIENT_PORT_KEY, DEFAULT_ZOOKEPER_CLIENT_PORT); + } + // Create the server.X properties. int peerPort = conf.getInt("hbase.zookeeper.peerport", 2888); int leaderPort = conf.getInt("hbase.zookeeper.leaderport", 3888); Index: core/src/test/java/org/apache/hadoop/hbase/zookeeper/TestHQuorumPeer.java =================================================================== --- core/src/test/java/org/apache/hadoop/hbase/zookeeper/TestHQuorumPeer.java (revision 922684) +++ core/src/test/java/org/apache/hadoop/hbase/zookeeper/TestHQuorumPeer.java (working copy) @@ -24,7 +24,9 @@ import java.util.Map; import java.util.Properties; +import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HBaseTestCase; import org.apache.hadoop.hbase.HConstants; import org.apache.zookeeper.server.quorum.QuorumPeerConfig; @@ -136,4 +138,15 @@ server = servers.get(Long.valueOf(0)); assertEquals("foo.bar", server.addr.getHostName()); } + + /** + * Test Case for HBASE-2305 + */ + public void testShouldAssignDefaultZookeeperClientPort() { + Configuration config = HBaseConfiguration.create(); + config.clear(); + Properties p = HQuorumPeer.makeZKProps(config); + assertNotNull(p); + assertEquals(2181, p.get("hbase.zookeeper.property.clientPort")); + } }