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.conf.Configuration;
31 import org.apache.hadoop.hbase.HBaseConfiguration;
32 import org.apache.hadoop.hbase.HBaseInterfaceAudience;
33
34
35
36
37
38 @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS)
39 public class ZKServerTool {
40
41 public static ServerName[] readZKNodes(Configuration conf) {
42 List<ServerName> hosts = new LinkedList<ServerName>();
43
44
45
46
47 Properties zkProps = ZKConfig.makeZKProps(conf);
48 for (Entry<Object, Object> entry : zkProps.entrySet()) {
49 String key = entry.getKey().toString().trim();
50 String value = entry.getValue().toString().trim();
51 if (key.startsWith("server.")) {
52 String[] parts = value.split(":");
53 String host = parts[0];
54
55 int port = HConstants.DEFAULT_ZOOKEPER_CLIENT_PORT;
56 if (parts.length > 1) {
57 port = Integer.parseInt(parts[1]);
58 }
59 hosts.add(ServerName.valueOf(host, port, -1));
60 }
61 }
62 return hosts.toArray(new ServerName[hosts.size()]);
63 }
64
65
66
67
68
69 public static void main(String args[]) {
70 for(ServerName server: readZKNodes(HBaseConfiguration.create())) {
71
72 System.out.println("ZK host: " + server.getHostname());
73 }
74 }
75 }