HBASE-8501 The hbase zkcli will connection failure the first and the second ip from ZooKeeperMainServerArg return connection string
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1498784 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
dfc29dcabf
commit
69b91b70ec
|
@ -108,6 +108,7 @@ public class RecoverableZooKeeper {
|
|||
public RecoverableZooKeeper(String quorumServers, int sessionTimeout,
|
||||
Watcher watcher, int maxRetries, int retryIntervalMillis, String identifier)
|
||||
throws IOException {
|
||||
// TODO: Add support for zk 'chroot'; we don't add it to the quorumServers String as we should.
|
||||
this.zk = new ZooKeeper(quorumServers, sessionTimeout, watcher);
|
||||
this.retryCounterFactory =
|
||||
new RetryCounterFactory(maxRetries, retryIntervalMillis);
|
||||
|
|
|
@ -76,13 +76,17 @@ possible configurations would overwhelm and obscure the important.
|
|||
<property>
|
||||
<name>hbase.zookeeper.quorum</name>
|
||||
<value>localhost</value>
|
||||
<description>Comma separated list of servers in the ZooKeeper Quorum.
|
||||
<description>Comma separated list of servers in the ZooKeeper ensemble
|
||||
(This config. should have been named hbase.zookeeper.ensemble).
|
||||
For example, "host1.mydomain.com,host2.mydomain.com,host3.mydomain.com".
|
||||
By default this is set to localhost for local and pseudo-distributed modes
|
||||
of operation. For a fully-distributed setup, this should be set to a full
|
||||
list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK is set in hbase-env.sh
|
||||
list of ZooKeeper ensemble servers. If HBASE_MANAGES_ZK is set in hbase-env.sh
|
||||
this is the list of servers which hbase will start/stop ZooKeeper on as
|
||||
part of cluster start/stop.
|
||||
part of cluster start/stop. Client-side, we will take this list of
|
||||
ensemble members and put it together with the hbase.zookeeper.clientPort
|
||||
config. and pass it into zookeeper constructor as the connectString
|
||||
parameter.
|
||||
</description>
|
||||
</property>
|
||||
<!--The above are the important configurations for getting hbase up
|
||||
|
|
|
@ -38,7 +38,6 @@ public class ZooKeeperMainServer {
|
|||
// HConstants.ZOOKEEPER_QUORUM from the HBaseConfiguration because the
|
||||
// user may be using a zoo.cfg file.
|
||||
Properties zkProps = ZKConfig.makeZKProps(c);
|
||||
String host = null;
|
||||
String clientPort = null;
|
||||
List<String> hosts = new ArrayList<String>();
|
||||
for (Entry<Object, Object> entry: zkProps.entrySet()) {
|
||||
|
@ -51,15 +50,15 @@ public class ZooKeeperMainServer {
|
|||
clientPort = value;
|
||||
}
|
||||
}
|
||||
if (hosts.isEmpty() || clientPort == null)
|
||||
return null;
|
||||
if (hosts.isEmpty() || clientPort == null) return null;
|
||||
StringBuilder host = new StringBuilder();
|
||||
for (int i = 0; i < hosts.size(); i++) {
|
||||
if (i > 0)
|
||||
host += "," + hosts.get(i);
|
||||
else
|
||||
host = hosts.get(i);
|
||||
if (i > 0) host.append("," + hosts.get(i));
|
||||
else host.append(hosts.get(i));
|
||||
host.append(":");
|
||||
host.append(clientPort);
|
||||
}
|
||||
return host != null ? host + ":" + clientPort : null;
|
||||
return host.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -78,4 +77,4 @@ public class ZooKeeperMainServer {
|
|||
}
|
||||
ZooKeeperMain.main(newArgs);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -32,15 +32,13 @@ public class TestZooKeeperMainServer {
|
|||
|
||||
@Test public void test() {
|
||||
Configuration c = HBaseConfiguration.create();
|
||||
assertEquals("localhost:" + c.get(HConstants.ZOOKEEPER_CLIENT_PORT),
|
||||
parser.parse(c));
|
||||
assertEquals("localhost:" + c.get(HConstants.ZOOKEEPER_CLIENT_PORT), parser.parse(c));
|
||||
final String port = "1234";
|
||||
c.set(HConstants.ZOOKEEPER_CLIENT_PORT, port);
|
||||
c.set("hbase.zookeeper.quorum", "example.com");
|
||||
assertEquals("example.com:" + port, parser.parse(c));
|
||||
c.set("hbase.zookeeper.quorum", "example1.com,example2.com,example3.com");
|
||||
assertTrue(port,
|
||||
parser.parse(c).matches("(example[1-3]\\.com,){2}example[1-3]\\.com:" + port));
|
||||
String ensemble = parser.parse(c);
|
||||
assertTrue(port, ensemble.matches("(example[1-3]\\.com:1234,){2}example[1-3]\\.com:" + port));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue