1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.hadoop.hbase.zookeeper;
21
22 import java.util.LinkedList;
23 import java.util.List;
24 import java.util.Properties;
25 import java.util.Map.Entry;
26
27 import org.apache.hadoop.hbase.HConstants;
28 import org.apache.hadoop.hbase.ServerName;
29 import org.apache.hadoop.hbase.classification.InterfaceAudience;
30 import org.apache.hadoop.hbase.classification.InterfaceStability;
31 import org.apache.hadoop.conf.Configuration;
32 import org.apache.hadoop.hbase.HBaseConfiguration;
33
34
35
36
37
38 @InterfaceAudience.Public
39 @InterfaceStability.Evolving
40 public class ZKServerTool {
41
42 public static ServerName[] readZKNodes(Configuration conf) {
43 List<ServerName> hosts = new LinkedList<ServerName>();
44
45
46
47
48 Properties zkProps = ZKConfig.makeZKProps(conf);
49 for (Entry<Object, Object> entry : zkProps.entrySet()) {
50 String key = entry.getKey().toString().trim();
51 String value = entry.getValue().toString().trim();
52 if (key.startsWith("server.")) {
53 String[] parts = value.split(":");
54 String host = parts[0];
55
56 int port = HConstants.DEFAULT_ZOOKEPER_CLIENT_PORT;
57 if (parts.length > 1) {
58 port = Integer.parseInt(parts[1]);
59 }
60 hosts.add(ServerName.valueOf(host, port, -1));
61 }
62 }
63 return hosts.toArray(new ServerName[hosts.size()]);
64 }
65
66
67
68
69
70 public static void main(String args[]) {
71 for(ServerName server: readZKNodes(HBaseConfiguration.create())) {
72
73 System.out.println("ZK host: " + server.getHostname());
74 }
75 }
76 }