HBASE-3861 MiniZooKeeperCluster should refer to maxClientCnxns

git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1100299 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Andrew Kyle Purtell 2011-05-06 17:43:02 +00:00
parent ee4553fc1a
commit 93a75bb3eb
4 changed files with 25 additions and 2 deletions

View File

@ -100,6 +100,8 @@ Release 0.91.0 - Unreleased
HBASE-3849 Fix master ui; hbase-1502 broke requests/second
HBASE-3853 Fix TestInfoServers to pass after HBASE-3835 (todd)
HBASE-3862 Race conditions in aggregate calculation (John Heitmann)
HBASE-3861 MiniZooKeeperCluster should refer to maxClientCnxns (Eugene
Koontz via Andrew Purtell)
IMPROVEMENTS
HBASE-3290 Max Compaction Size (Nicolas Spiegelberg via Stack)

View File

@ -33,7 +33,9 @@ import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileUtil;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.zookeeper.server.NIOServerCnxn;
import org.apache.zookeeper.server.ZooKeeperServer;
import org.apache.zookeeper.server.persistence.FileTxnLog;
@ -61,9 +63,17 @@ public class MiniZooKeeperCluster {
private int activeZKServerIndex;
private int tickTime = 0;
private Configuration configuration;
/** Create mini ZooKeeper cluster. */
public MiniZooKeeperCluster() {
this(HBaseConfiguration.create());
}
/** Create mini ZooKeeper cluster. */
public MiniZooKeeperCluster(Configuration configuration) {
this.started = false;
this.configuration = configuration;
activeZKServerIndex = -1;
zooKeeperServers = new ArrayList<ZooKeeperServer>();
clientPortList = new ArrayList<Integer>();
@ -131,12 +141,13 @@ public class MiniZooKeeperCluster {
} else {
tickTimeToUse = TICK_TIME;
}
int numberOfConnections = this.configuration.getInt("hbase.zookeeper.property.maxClientCnxns",5000);
ZooKeeperServer server = new ZooKeeperServer(dir, dir, tickTimeToUse);
NIOServerCnxn.Factory standaloneServerFactory;
while (true) {
try {
standaloneServerFactory =
new NIOServerCnxn.Factory(new InetSocketAddress(clientPort));
new NIOServerCnxn.Factory(new InetSocketAddress(clientPort), numberOfConnections);
} catch (BindException e) {
LOG.info("Failed binding ZK Server to client port: " + clientPort);
//this port is already in use. try to use another

View File

@ -280,7 +280,7 @@ public class HBaseTestingUtility {
if (this.zkCluster != null) {
throw new IOException("Cluster already running at " + dir);
}
this.zkCluster = new MiniZooKeeperCluster();
this.zkCluster = new MiniZooKeeperCluster(this.getConfiguration());
int clientPort = this.zkCluster.startup(dir,zooKeeperServerNum);
this.conf.set("hbase.zookeeper.property.clientPort",
Integer.toString(clientPort));

View File

@ -146,4 +146,14 @@
version is X.X.X-SNAPSHOT"
</description>
</property>
<property>
<name>hbase.zookeeper.property.maxClientCnxns</name>
<value>5000</value>
<description>Property from ZooKeeper's config zoo.cfg.
Limit on number of concurrent connections (at the socket level) that a
single client, identified by IP address, may make to a single member of
the ZooKeeper ensemble. Set high to avoid zk connection issues running
standalone and pseudo-distributed.
</description>
</property>
</configuration>