Repository: hbase Updated Branches: refs/heads/0.98 53eaa6e9d -> d97169070
HBASE-12795 Backport HBASE-12429 (Add port to ClusterManager's actions) to 0.98 Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/d9716907 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/d9716907 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/d9716907 Branch: refs/heads/0.98 Commit: d9716907064df11a4b50f39ca7b03aa3b3203be0 Parents: 53eaa6e Author: Andrew Purtell <apurt...@apache.org> Authored: Mon Mar 2 16:30:45 2015 -0800 Committer: Andrew Purtell <apurt...@apache.org> Committed: Mon Mar 2 16:30:45 2015 -0800 ---------------------------------------------------------------------- .../org/apache/hadoop/hbase/ClusterManager.java | 16 +- .../hadoop/hbase/DistributedHBaseCluster.java | 153 ++++++++++++------- .../hadoop/hbase/HBaseClusterManager.java | 14 +- .../hadoop/hbase/RESTApiClusterManager.java | 22 +-- .../hadoop/hbase/chaos/actions/Action.java | 6 +- .../chaos/actions/BatchRestartRsAction.java | 4 +- .../org/apache/hadoop/hbase/HBaseCluster.java | 8 +- .../apache/hadoop/hbase/MiniHBaseCluster.java | 4 +- 8 files changed, 133 insertions(+), 94 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/d9716907/hbase-it/src/test/java/org/apache/hadoop/hbase/ClusterManager.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/ClusterManager.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/ClusterManager.java index dd96e43..2d46279 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/ClusterManager.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/ClusterManager.java @@ -61,38 +61,38 @@ interface ClusterManager extends Configurable { /** * Start the service on the given host */ - void start(ServiceType service, String hostname) throws IOException; + void start(ServiceType service, String hostname, int port) throws IOException; /** * Stop the service on the given host */ - void stop(ServiceType service, String hostname) throws IOException; + void stop(ServiceType service, String hostname, int port) throws IOException; /** - * Restarts the service on the given host + * Restart the service on the given host */ - void restart(ServiceType service, String hostname) throws IOException; + void restart(ServiceType service, String hostname, int port) throws IOException; /** * Kills the service running on the given host */ - void kill(ServiceType service, String hostname) throws IOException; + void kill(ServiceType service, String hostname, int port) throws IOException; /** * Suspends the service running on the given host */ - void suspend(ServiceType service, String hostname) throws IOException; + void suspend(ServiceType service, String hostname, int port) throws IOException; /** * Resumes the services running on the given host */ - void resume(ServiceType service, String hostname) throws IOException; + void resume(ServiceType service, String hostname, int port) throws IOException; /** * Returns whether the service is running on the remote host. This only checks whether the * service still has a pid. */ - boolean isRunning(ServiceType service, String hostname) throws IOException; + boolean isRunning(ServiceType service, String hostname, int port) throws IOException; /* TODO: further API ideas: * http://git-wip-us.apache.org/repos/asf/hbase/blob/d9716907/hbase-it/src/test/java/org/apache/hadoop/hbase/DistributedHBaseCluster.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/DistributedHBaseCluster.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/DistributedHBaseCluster.java index 88ea299..52a9a8b 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/DistributedHBaseCluster.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/DistributedHBaseCluster.java @@ -19,8 +19,12 @@ package org.apache.hadoop.hbase; import java.io.IOException; import java.util.ArrayList; +import java.util.Comparator; import java.util.HashMap; +import java.util.HashSet; import java.util.List; +import java.util.Set; +import java.util.TreeSet; import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.conf.Configuration; @@ -99,21 +103,25 @@ public class DistributedHBaseCluster extends HBaseCluster { } @Override - public void startRegionServer(String hostname) throws IOException { + public void startRegionServer(String hostname, int port) throws IOException { LOG.info("Starting RS on: " + hostname); - clusterManager.start(ServiceType.HBASE_REGIONSERVER, hostname); + clusterManager.start(ServiceType.HBASE_REGIONSERVER, hostname, port); } @Override public void killRegionServer(ServerName serverName) throws IOException { LOG.info("Aborting RS: " + serverName.getServerName()); - clusterManager.kill(ServiceType.HBASE_REGIONSERVER, serverName.getHostname()); + clusterManager.kill(ServiceType.HBASE_REGIONSERVER, + serverName.getHostname(), + serverName.getPort()); } @Override public void stopRegionServer(ServerName serverName) throws IOException { LOG.info("Stopping RS: " + serverName.getServerName()); - clusterManager.stop(ServiceType.HBASE_REGIONSERVER, serverName.getHostname()); + clusterManager.stop(ServiceType.HBASE_REGIONSERVER, + serverName.getHostname(), + serverName.getPort()); } @Override @@ -127,7 +135,7 @@ public class DistributedHBaseCluster extends HBaseCluster { long start = System.currentTimeMillis(); while ((System.currentTimeMillis() - start) < timeout) { - if (!clusterManager.isRunning(service, serverName.getHostname())) { + if (!clusterManager.isRunning(service, serverName.getHostname(), serverName.getPort())) { return; } Threads.sleep(1000); @@ -143,21 +151,21 @@ public class DistributedHBaseCluster extends HBaseCluster { } @Override - public void startMaster(String hostname) throws IOException { - LOG.info("Starting Master on: " + hostname); - clusterManager.start(ServiceType.HBASE_MASTER, hostname); + public void startMaster(String hostname, int port) throws IOException { + LOG.info("Starting Master on: " + hostname + ":" + port); + clusterManager.start(ServiceType.HBASE_MASTER, hostname, port); } @Override public void killMaster(ServerName serverName) throws IOException { LOG.info("Aborting Master: " + serverName.getServerName()); - clusterManager.kill(ServiceType.HBASE_MASTER, serverName.getHostname()); + clusterManager.kill(ServiceType.HBASE_MASTER, serverName.getHostname(), serverName.getPort()); } @Override public void stopMaster(ServerName serverName) throws IOException { LOG.info("Stopping Master: " + serverName.getServerName()); - clusterManager.stop(ServiceType.HBASE_MASTER, serverName.getHostname()); + clusterManager.stop(ServiceType.HBASE_MASTER, serverName.getHostname(), serverName.getPort()); } @Override @@ -201,13 +209,13 @@ public class DistributedHBaseCluster extends HBaseCluster { @Override public void waitUntilShutDown() { - //Simply wait for a few seconds for now (after issuing serverManager.kill + // Simply wait for a few seconds for now (after issuing serverManager.kill throw new RuntimeException("Not implemented yet"); } @Override public void shutdown() throws IOException { - //not sure we want this + // not sure we want this throw new RuntimeException("Not implemented yet"); } @@ -235,30 +243,35 @@ public class DistributedHBaseCluster extends HBaseCluster { protected boolean restoreMasters(ClusterStatus initial, ClusterStatus current) { List<IOException> deferred = new ArrayList<IOException>(); //check whether current master has changed - if (!ServerName.isSameHostnameAndPort(initial.getMaster(), current.getMaster())) { - LOG.info("Restoring cluster - Initial active master : " + initial.getMaster().getHostname() - + " has changed to : " + current.getMaster().getHostname()); + final ServerName initMaster = initial.getMaster(); + if (!ServerName.isSameHostnameAndPort(initMaster, current.getMaster())) { + LOG.info("Restoring cluster - Initial active master : " + + initMaster.getHostAndPort() + + " has changed to : " + + current.getMaster().getHostAndPort()); // If initial master is stopped, start it, before restoring the state. // It will come up as a backup master, if there is already an active master. try { - if (!clusterManager.isRunning(ServiceType.HBASE_MASTER, initial.getMaster().getHostname())) { - LOG.info("Restoring cluster - starting initial active master at:" + initial.getMaster().getHostname()); - startMaster(initial.getMaster().getHostname()); + if (!clusterManager.isRunning(ServiceType.HBASE_MASTER, + initMaster.getHostname(), initMaster.getPort())) { + LOG.info("Restoring cluster - starting initial active master at:" + + initMaster.getHostAndPort()); + startMaster(initMaster.getHostname(), initMaster.getPort()); } - //master has changed, we would like to undo this. - //1. Kill the current backups - //2. Stop current master - //3. Start backup masters + // master has changed, we would like to undo this. + // 1. Kill the current backups + // 2. Stop current master + // 3. Start backup masters for (ServerName currentBackup : current.getBackupMasters()) { - if (!ServerName.isSameHostnameAndPort(currentBackup, initial.getMaster())) { + if (!ServerName.isSameHostnameAndPort(currentBackup, initMaster)) { LOG.info("Restoring cluster - stopping backup master: " + currentBackup); stopMaster(currentBackup); } } LOG.info("Restoring cluster - stopping active master: " + current.getMaster()); stopMaster(current.getMaster()); - waitForActiveAndReadyMaster(); //wait so that active master takes over + waitForActiveAndReadyMaster(); // wait so that active master takes over } catch (IOException ex) { // if we fail to start the initial active master, we do not want to continue stopping // backup masters. Just keep what we have now @@ -269,9 +282,12 @@ public class DistributedHBaseCluster extends HBaseCluster { for (ServerName backup : initial.getBackupMasters()) { try { //these are not started in backup mode, but we should already have an active master - if(!clusterManager.isRunning(ServiceType.HBASE_MASTER, backup.getHostname())) { - LOG.info("Restoring cluster - starting initial backup master: " + backup.getHostname()); - startMaster(backup.getHostname()); + if (!clusterManager.isRunning(ServiceType.HBASE_MASTER, + backup.getHostname(), + backup.getPort())) { + LOG.info("Restoring cluster - starting initial backup master: " + + backup.getHostAndPort()); + startMaster(backup.getHostname(), backup.getPort()); } } catch (IOException ex) { deferred.add(ex); @@ -279,32 +295,34 @@ public class DistributedHBaseCluster extends HBaseCluster { } } else { //current master has not changed, match up backup masters - HashMap<String, ServerName> initialBackups = new HashMap<String, ServerName>(); - HashMap<String, ServerName> currentBackups = new HashMap<String, ServerName>(); + Set<ServerName> toStart = new TreeSet<ServerName>(new ServerNameIgnoreStartCodeComparator()); + Set<ServerName> toKill = new TreeSet<ServerName>(new ServerNameIgnoreStartCodeComparator()); + toStart.addAll(initial.getBackupMasters()); + toKill.addAll(current.getBackupMasters()); - for (ServerName server : initial.getBackupMasters()) { - initialBackups.put(server.getHostname(), server); - } for (ServerName server : current.getBackupMasters()) { - currentBackups.put(server.getHostname(), server); + toStart.remove(server); + } + for (ServerName server: initial.getBackupMasters()) { + toKill.remove(server); } - for (String hostname : Sets.difference(initialBackups.keySet(), currentBackups.keySet())) { + for (ServerName sn:toStart) { try { - if(!clusterManager.isRunning(ServiceType.HBASE_MASTER, hostname)) { - LOG.info("Restoring cluster - starting initial backup master: " + hostname); - startMaster(hostname); + if(!clusterManager.isRunning(ServiceType.HBASE_MASTER, sn.getHostname(), sn.getPort())) { + LOG.info("Restoring cluster - starting initial backup master: " + sn.getHostAndPort()); + startMaster(sn.getHostname(), sn.getPort()); } } catch (IOException ex) { deferred.add(ex); } } - for (String hostname : Sets.difference(currentBackups.keySet(), initialBackups.keySet())) { + for (ServerName sn:toKill) { try { - if(clusterManager.isRunning(ServiceType.HBASE_MASTER, hostname)) { - LOG.info("Restoring cluster - stopping backup master: " + hostname); - stopMaster(currentBackups.get(hostname)); + if(clusterManager.isRunning(ServiceType.HBASE_MASTER, sn.getHostname(), sn.getPort())) { + LOG.info("Restoring cluster - stopping backup master: " + sn.getHostAndPort()); + stopMaster(sn); } } catch (IOException ex) { deferred.add(ex); @@ -312,7 +330,8 @@ public class DistributedHBaseCluster extends HBaseCluster { } } if (!deferred.isEmpty()) { - LOG.warn("Restoring cluster - restoring region servers reported " + deferred.size() + " errors:"); + LOG.warn("Restoring cluster - restoring region servers reported " + + deferred.size() + " errors:"); for (int i=0; i<deferred.size() && i < 3; i++) { LOG.warn(deferred.get(i)); } @@ -321,41 +340,61 @@ public class DistributedHBaseCluster extends HBaseCluster { return deferred.isEmpty(); } - protected boolean restoreRegionServers(ClusterStatus initial, ClusterStatus current) { - HashMap<String, ServerName> initialServers = new HashMap<String, ServerName>(); - HashMap<String, ServerName> currentServers = new HashMap<String, ServerName>(); - for (ServerName server : initial.getServers()) { - initialServers.put(server.getHostname(), server); + private static class ServerNameIgnoreStartCodeComparator implements Comparator<ServerName> { + @Override + public int compare(ServerName o1, ServerName o2) { + int compare = o1.getHostname().compareToIgnoreCase(o2.getHostname()); + if (compare != 0) return compare; + compare = o1.getPort() - o2.getPort(); + if (compare != 0) return compare; + return 0; } + } + + protected boolean restoreRegionServers(ClusterStatus initial, ClusterStatus current) { + Set<ServerName> toStart = new TreeSet<ServerName>(new ServerNameIgnoreStartCodeComparator()); + Set<ServerName> toKill = new TreeSet<ServerName>(new ServerNameIgnoreStartCodeComparator()); + toStart.addAll(initial.getBackupMasters()); + toKill.addAll(current.getBackupMasters()); + for (ServerName server : current.getServers()) { - currentServers.put(server.getHostname(), server); + toStart.remove(server); + } + for (ServerName server: initial.getServers()) { + toKill.remove(server); } List<IOException> deferred = new ArrayList<IOException>(); - for (String hostname : Sets.difference(initialServers.keySet(), currentServers.keySet())) { + + for(ServerName sn:toStart) { try { - if(!clusterManager.isRunning(ServiceType.HBASE_REGIONSERVER, hostname)) { - LOG.info("Restoring cluster - starting initial region server: " + hostname); - startRegionServer(hostname); + if (!clusterManager.isRunning(ServiceType.HBASE_REGIONSERVER, + sn.getHostname(), + sn.getPort())) { + LOG.info("Restoring cluster - starting initial region server: " + sn.getHostAndPort()); + startRegionServer(sn.getHostname(), sn.getPort()); } } catch (IOException ex) { deferred.add(ex); } } - for (String hostname : Sets.difference(currentServers.keySet(), initialServers.keySet())) { + for(ServerName sn:toKill) { try { - if(clusterManager.isRunning(ServiceType.HBASE_REGIONSERVER, hostname)) { - LOG.info("Restoring cluster - stopping initial region server: " + hostname); - stopRegionServer(currentServers.get(hostname)); + if (clusterManager.isRunning(ServiceType.HBASE_REGIONSERVER, + sn.getHostname(), + sn.getPort())) { + LOG.info("Restoring cluster - stopping initial region server: " + sn.getHostAndPort()); + stopRegionServer(sn); } } catch (IOException ex) { deferred.add(ex); } } if (!deferred.isEmpty()) { - LOG.warn("Restoring cluster - restoring region servers reported " + deferred.size() + " errors:"); + LOG.warn("Restoring cluster - restoring region servers reported " + + deferred.size() + " errors:"); for (int i=0; i<deferred.size() && i < 3; i++) { LOG.warn(deferred.get(i)); } http://git-wip-us.apache.org/repos/asf/hbase/blob/d9716907/hbase-it/src/test/java/org/apache/hadoop/hbase/HBaseClusterManager.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/HBaseClusterManager.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/HBaseClusterManager.java index e396178..8bdb5d6 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/HBaseClusterManager.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/HBaseClusterManager.java @@ -256,17 +256,17 @@ public class HBaseClusterManager extends Configured implements ClusterManager { } @Override - public void start(ServiceType service, String hostname) throws IOException { + public void start(ServiceType service, String hostname, int port) throws IOException { exec(hostname, service, Operation.START); } @Override - public void stop(ServiceType service, String hostname) throws IOException { + public void stop(ServiceType service, String hostname, int port) throws IOException { exec(hostname, service, Operation.STOP); } @Override - public void restart(ServiceType service, String hostname) throws IOException { + public void restart(ServiceType service, String hostname, int port) throws IOException { exec(hostname, service, Operation.RESTART); } @@ -275,24 +275,24 @@ public class HBaseClusterManager extends Configured implements ClusterManager { } @Override - public boolean isRunning(ServiceType service, String hostname) throws IOException { + public boolean isRunning(ServiceType service, String hostname, int port) throws IOException { String ret = execWithRetries(hostname, getCommandProvider(service).isRunningCommand(service)) .getSecond(); return ret.length() > 0; } @Override - public void kill(ServiceType service, String hostname) throws IOException { + public void kill(ServiceType service, String hostname, int port) throws IOException { signal(service, SIGKILL, hostname); } @Override - public void suspend(ServiceType service, String hostname) throws IOException { + public void suspend(ServiceType service, String hostname, int port) throws IOException { signal(service, SIGSTOP, hostname); } @Override - public void resume(ServiceType service, String hostname) throws IOException { + public void resume(ServiceType service, String hostname, int port) throws IOException { signal(service, SIGCONT, hostname); } } http://git-wip-us.apache.org/repos/asf/hbase/blob/d9716907/hbase-it/src/test/java/org/apache/hadoop/hbase/RESTApiClusterManager.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/RESTApiClusterManager.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/RESTApiClusterManager.java index 060784f..28fac4e 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/RESTApiClusterManager.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/RESTApiClusterManager.java @@ -120,22 +120,22 @@ public class RESTApiClusterManager extends Configured implements ClusterManager } @Override - public void start(ServiceType service, String hostname) throws IOException { + public void start(ServiceType service, String hostname, int port) throws IOException { performClusterManagerCommand(service, hostname, RoleCommand.START); } @Override - public void stop(ServiceType service, String hostname) throws IOException { + public void stop(ServiceType service, String hostname, int port) throws IOException { performClusterManagerCommand(service, hostname, RoleCommand.STOP); } @Override - public void restart(ServiceType service, String hostname) throws IOException { + public void restart(ServiceType service, String hostname, int port) throws IOException { performClusterManagerCommand(service, hostname, RoleCommand.RESTART); } @Override - public boolean isRunning(ServiceType service, String hostname) throws IOException { + public boolean isRunning(ServiceType service, String hostname, int port) throws IOException { String serviceName = getServiceName(roleServiceType.get(service)); String hostId = getHostId(hostname); String roleState = getRoleState(serviceName, service.toString(), hostId); @@ -152,18 +152,18 @@ public class RESTApiClusterManager extends Configured implements ClusterManager } @Override - public void kill(ServiceType service, String hostname) throws IOException { - hBaseClusterManager.kill(service, hostname); + public void kill(ServiceType service, String hostname, int port) throws IOException { + hBaseClusterManager.kill(service, hostname, port); } @Override - public void suspend(ServiceType service, String hostname) throws IOException { - hBaseClusterManager.kill(service, hostname); + public void suspend(ServiceType service, String hostname, int port) throws IOException { + hBaseClusterManager.kill(service, hostname, port); } @Override - public void resume(ServiceType service, String hostname) throws IOException { - hBaseClusterManager.kill(service, hostname); + public void resume(ServiceType service, String hostname, int port) throws IOException { + hBaseClusterManager.kill(service, hostname, port); } @@ -347,4 +347,4 @@ public class RESTApiClusterManager extends Configured implements ClusterManager private enum Service { HBASE, HDFS, MAPREDUCE } -} +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/hbase/blob/d9716907/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/Action.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/Action.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/Action.java index 0410b3f..0b51afa 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/Action.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/Action.java @@ -98,7 +98,7 @@ public class Action { protected void startMaster(ServerName server) throws IOException { LOG.info("Starting master:" + server.getHostname()); - cluster.startMaster(server.getHostname()); + cluster.startMaster(server.getHostname(), server.getPort()); cluster.waitForActiveAndReadyMaster(startMasterTimeout); LOG.info("Started master: " + server); } @@ -113,8 +113,8 @@ public class Action { protected void startRs(ServerName server) throws IOException { LOG.info("Starting region server:" + server.getHostname()); - cluster.startRegionServer(server.getHostname()); - cluster.waitForRegionServerToStart(server.getHostname(), startRsTimeout); + cluster.startRegionServer(server.getHostname(), server.getPort()); + cluster.waitForRegionServerToStart(server.getHostname(), server.getPort(), startRsTimeout); LOG.info("Started region server:" + server + ". Reported num of rs:" + cluster.getClusterStatus().getServersSize()); } http://git-wip-us.apache.org/repos/asf/hbase/blob/d9716907/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/BatchRestartRsAction.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/BatchRestartRsAction.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/BatchRestartRsAction.java index edfd9c4..b6a5b50 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/BatchRestartRsAction.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/BatchRestartRsAction.java @@ -57,11 +57,11 @@ public class BatchRestartRsAction extends RestartActionBaseAction { for (ServerName server : selectedServers) { LOG.info("Starting region server:" + server.getHostname()); - cluster.startRegionServer(server.getHostname()); + cluster.startRegionServer(server.getHostname(), server.getPort()); } for (ServerName server : selectedServers) { - cluster.waitForRegionServerToStart(server.getHostname(), PolicyBasedChaosMonkey.TIMEOUT); + cluster.waitForRegionServerToStart(server.getHostname(), server.getPort(), PolicyBasedChaosMonkey.TIMEOUT); } LOG.info("Started " + selectedServers.size() +" region servers. Reported num of rs:" + cluster.getClusterStatus().getServersSize()); http://git-wip-us.apache.org/repos/asf/hbase/blob/d9716907/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseCluster.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseCluster.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseCluster.java index 4232f97..b5f2485 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseCluster.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseCluster.java @@ -118,7 +118,7 @@ public abstract class HBaseCluster implements Closeable, Configurable { * @param hostname the hostname to start the regionserver on * @throws IOException if something goes wrong */ - public abstract void startRegionServer(String hostname) throws IOException; + public abstract void startRegionServer(String hostname, int port) throws IOException; /** * Kills the region server process if this is a distributed cluster, otherwise @@ -139,12 +139,12 @@ public abstract class HBaseCluster implements Closeable, Configurable { * @return whether the operation finished with success * @throws IOException if something goes wrong or timeout occurs */ - public void waitForRegionServerToStart(String hostname, long timeout) + public void waitForRegionServerToStart(String hostname, int port, long timeout) throws IOException { long start = System.currentTimeMillis(); while ((System.currentTimeMillis() - start) < timeout) { for (ServerName server : getClusterStatus().getServers()) { - if (server.getHostname().equals(hostname)) { + if (server.getHostname().equals(hostname) && server.getPort() == port) { return; } } @@ -169,7 +169,7 @@ public abstract class HBaseCluster implements Closeable, Configurable { * @return whether the operation finished with success * @throws IOException if something goes wrong */ - public abstract void startMaster(String hostname) throws IOException; + public abstract void startMaster(String hostname, int port) throws IOException; /** * Kills the master process if this is a distributed cluster, otherwise, http://git-wip-us.apache.org/repos/asf/hbase/blob/d9716907/hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java index 55db7ea..293d62e 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java @@ -233,7 +233,7 @@ public class MiniHBaseCluster extends HBaseCluster { } @Override - public void startRegionServer(String hostname) throws IOException { + public void startRegionServer(String hostname, int port) throws IOException { this.startRegionServer(); } @@ -260,7 +260,7 @@ public class MiniHBaseCluster extends HBaseCluster { } @Override - public void startMaster(String hostname) throws IOException { + public void startMaster(String hostname, int port) throws IOException { this.startMaster(); }