You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by jx...@apache.org on 2014/04/01 21:53:56 UTC
svn commit: r1583769 - in
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master:
AssignmentManager.java HMaster.java HMasterCommandLine.java
ServerManager.java balancer/BaseLoadBalancer.java
Author: jxiang
Date: Tue Apr 1 19:53:55 2014
New Revision: 1583769
URL: http://svn.apache.org/r1583769
Log:
HBASE-10851 Wait for regionservers to join the cluster
Modified:
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMasterCommandLine.java
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java?rev=1583769&r1=1583768&r2=1583769&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java Tue Apr 1 19:53:55 2014
@@ -64,7 +64,6 @@ import org.apache.hadoop.hbase.executor.
import org.apache.hadoop.hbase.executor.ExecutorService;
import org.apache.hadoop.hbase.ipc.RpcClient;
import org.apache.hadoop.hbase.ipc.RpcClient.FailedServerException;
-import org.apache.hadoop.hbase.ipc.RpcClient.FailedServerException;
import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;
import org.apache.hadoop.hbase.master.RegionState.State;
import org.apache.hadoop.hbase.master.balancer.FavoredNodeAssignmentHelper;
@@ -2211,11 +2210,9 @@ public class AssignmentManager extends Z
}
LOG.debug("No previous transition plan found (or ignoring " +
"an existing plan) for " + region.getRegionNameAsString() +
- "; generated random plan=" + randomPlan + "; " +
- serverManager.countOfRegionServers() +
- " (online=" + serverManager.getOnlineServers().size() +
- ", available=" + destServers.size() + ") available servers" +
- ", forceNewPlan=" + forceNewPlan);
+ "; generated random plan=" + randomPlan + "; " + destServers.size() +
+ " (online=" + serverManager.getOnlineServers().size() +
+ ") available servers, forceNewPlan=" + forceNewPlan);
return randomPlan;
}
LOG.debug("Using pre-existing plan for " +
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java?rev=1583769&r1=1583768&r2=1583769&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java Tue Apr 1 19:53:55 2014
@@ -532,7 +532,7 @@ public class HMaster extends HRegionServ
this.initializationBeforeMetaAssignment = true;
// Wait for regionserver to finish initialization.
- while (!isOnline()) {
+ while (!isStopped() && !isOnline()) {
synchronized (online) {
online.wait(100);
}
@@ -543,6 +543,10 @@ public class HMaster extends HRegionServ
this.balancer.setMasterServices(this);
this.balancer.initialize();
+ // Check if master is shutting down because of some issue
+ // in initializing the regionserver or the balancer.
+ if(isStopped()) return;
+
// Make sure meta assigned before proceeding.
status.setStatus("Assigning Meta Region");
assignMeta(status, previouslyFailedMetaRSs);
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMasterCommandLine.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMasterCommandLine.java?rev=1583769&r1=1583768&r2=1583769&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMasterCommandLine.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMasterCommandLine.java Tue Apr 1 19:53:55 2014
@@ -151,6 +151,7 @@ public class HMasterCommandLine extends
// and regionserver both in the one JVM.
if (LocalHBaseCluster.isLocal(conf)) {
DefaultMetricsSystem.setMiniClusterMode(true);
+ conf.setInt(ServerManager.WAIT_ON_REGIONSERVERS_MINTOSTART, 1);
final MiniZooKeeperCluster zooKeeperCluster = new MiniZooKeeperCluster(conf);
File zkDataPath = new File(conf.get(HConstants.ZOOKEEPER_DATA_DIR));
int zkClientPort = conf.getInt(HConstants.ZOOKEEPER_CLIENT_PORT, 0);
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java?rev=1583769&r1=1583768&r2=1583769&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java Tue Apr 1 19:53:55 2014
@@ -436,10 +436,19 @@ public class ServerManager {
return averageLoad;
}
- /** @return the count of active regionservers */
- int countOfRegionServers() {
+ /**
+ * Get the count of active regionservers that are not backup
+ * masters. This count may not be accurate depending on timing.
+ * @return the count of active regionservers
+ */
+ private int countOfRegionServers() {
// Presumes onlineServers is a concurrent map
- return this.onlineServers.size();
+ int count = this.onlineServers.size();
+ if (balancer != null) {
+ count -= balancer.getExcludedServers().size();
+ if (count < 0) count = 0;
+ }
+ return count;
}
/**
@@ -849,7 +858,7 @@ public class ServerManager {
final long timeout = this.master.getConfiguration().
getLong(WAIT_ON_REGIONSERVERS_TIMEOUT, 4500);
int minToStart = this.master.getConfiguration().
- getInt(WAIT_ON_REGIONSERVERS_MINTOSTART, 1);
+ getInt(WAIT_ON_REGIONSERVERS_MINTOSTART, 2);
if (minToStart < 1) {
LOG.warn(String.format(
"The value of '%s' (%d) can not be less than 1, ignoring.",
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java?rev=1583769&r1=1583768&r2=1583769&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java Tue Apr 1 19:53:55 2014
@@ -496,6 +496,10 @@ public abstract class BaseLoadBalancer i
if (!usingBackupMasters) excludedServers.add(serverName);
}
+ public Set<ServerName> getExcludedServers() {
+ return excludedServers;
+ }
+
@Override
public Configuration getConf() {
return this.config;