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 8bdb5d6..3bde3e1 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 @@ -148,17 +148,22 @@ public class HBaseClusterManager extends Configured implements ClusterManager { public abstract String getCommand(ServiceType service, Operation op); - public String isRunningCommand(ServiceType service) { - return findPidCommand(service); + public String isRunningCommand(ServiceType service, int port) { + return findPidCommand(service, port); } - protected String findPidCommand(ServiceType service) { - return String.format("ps aux | grep proc_%s | grep -v grep | tr -s ' ' | cut -d ' ' -f2", + protected String findPidCommand(ServiceType service, int port) { + if (port > 0) { + return String.format( + "netstat -nltp | grep %d | tr -s ' ' | cut -d ' ' -f7 | cut -d '/' -f1", port); + } else { + return String.format("ps aux | grep proc_%s | grep -v grep | tr -s ' ' | cut -d ' ' -f2", service); + } } - public String signalCommand(ServiceType service, String signal) { - return String.format("%s | xargs kill -s %s", findPidCommand(service), signal); + public String signalCommand(ServiceType service, String signal, int port) { + return String.format("%s | xargs kill -s %s", findPidCommand(service, port), signal); } } @@ -270,29 +275,31 @@ public class HBaseClusterManager extends Configured implements ClusterManager { exec(hostname, service, Operation.RESTART); } - public void signal(ServiceType service, String signal, String hostname) throws IOException { - execWithRetries(hostname, getCommandProvider(service).signalCommand(service, signal)); + public void signal(ServiceType service, String signal, String hostname, int port) + throws IOException { + execWithRetries(hostname, getCommandProvider(service).signalCommand(service, signal, port)); } @Override public boolean isRunning(ServiceType service, String hostname, int port) throws IOException { - String ret = execWithRetries(hostname, getCommandProvider(service).isRunningCommand(service)) - .getSecond(); + String ret = + execWithRetries(hostname, getCommandProvider(service).isRunningCommand(service, port)) + .getSecond(); return ret.length() > 0; } @Override public void kill(ServiceType service, String hostname, int port) throws IOException { - signal(service, SIGKILL, hostname); + signal(service, SIGKILL, hostname, port); } @Override public void suspend(ServiceType service, String hostname, int port) throws IOException { - signal(service, SIGSTOP, hostname); + signal(service, SIGSTOP, hostname, port); } @Override public void resume(ServiceType service, String hostname, int port) throws IOException { - signal(service, SIGCONT, hostname); + signal(service, SIGCONT, hostname, port); } }