Index: src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
===================================================================
--- src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java (revision 1170946)
+++ src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java (working copy)
@@ -54,6 +54,7 @@
import org.apache.hadoop.hbase.catalog.CatalogTracker;
import org.apache.hadoop.hbase.catalog.MetaReader;
import org.apache.hadoop.hbase.client.MetaScanner.MetaScannerVisitor;
+import org.apache.hadoop.hbase.coprocessor.ObserverContext;
import org.apache.hadoop.hbase.ipc.HMasterInterface;
import org.apache.hadoop.hbase.ipc.HRegionInterface;
import org.apache.hadoop.hbase.regionserver.wal.FailedLogCloseException;
@@ -1303,16 +1304,32 @@
}
/**
- * @param regionName Region name to assign.
- * @param force True to force assign.
+ * @param regionName
+ * Region name to assign.
+ * @param force
+ * True to force assign.
* @throws MasterNotRunningException
* @throws ZooKeeperConnectionException
* @throws IOException
+ * @deprecated The force is unused.Use {@link #assign(byte[])}
*/
- public void assign(final byte [] regionName, final boolean force)
- throws MasterNotRunningException, ZooKeeperConnectionException, IOException {
+ public void assign(final byte[] regionName, final boolean force)
+ throws MasterNotRunningException, ZooKeeperConnectionException,
+ IOException {
getMaster().assign(regionName, force);
}
+
+ /**
+ * @param regionName
+ * Region name to assign.
+ * @throws MasterNotRunningException
+ * @throws ZooKeeperConnectionException
+ * @throws IOException
+ */
+ public void assign(final byte[] regionName) throws MasterNotRunningException,
+ ZooKeeperConnectionException, IOException {
+ getMaster().assign(regionName);
+ }
/**
* Unassign a region from current hosting regionserver. Region will then be
Index: src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
===================================================================
--- src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java (revision 1170946)
+++ src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java (working copy)
@@ -112,12 +112,12 @@
@Override
public void preAssign(ObserverContext ctx,
- HRegionInfo regionInfo, boolean force) throws IOException {
+ HRegionInfo regionInfo) throws IOException {
}
-
+
@Override
public void postAssign(ObserverContext ctx,
- HRegionInfo regionInfo, boolean force) throws IOException {
+ HRegionInfo regionInfo) throws IOException {
}
@Override
Index: src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
===================================================================
--- src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java (revision 1170946)
+++ src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java (working copy)
@@ -205,21 +205,18 @@
* Called prior to assigning a specific region.
* @param ctx the environment to interact with the framework and master
* @param regionInfo the regionInfo of the region
- * @param force whether to force assignment or not
*/
void preAssign(final ObserverContext ctx,
- final HRegionInfo regionInfo, final boolean force)
- throws IOException;
-
+ final HRegionInfo regionInfo) throws IOException;
+
/**
* Called after the region assignment has been requested.
* @param ctx the environment to interact with the framework and master
* @param regionInfo the regionInfo of the region
- * @param force whether to force assignment or not
*/
void postAssign(final ObserverContext ctx,
- final HRegionInfo regionInfo, final boolean force) throws IOException;
-
+ final HRegionInfo regionInfo) throws IOException;
+
/**
* Called prior to unassigning a given region.
* @param ctx the environment to interact with the framework and master
Index: src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java
===================================================================
--- src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java (revision 1170946)
+++ src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java (working copy)
@@ -24,11 +24,15 @@
import org.apache.hadoop.hbase.ClusterStatus;
import org.apache.hadoop.hbase.HColumnDescriptor;
+import org.apache.hadoop.hbase.HRegionInfo;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.UnknownRegionException;
import org.apache.hadoop.hbase.util.Pair;
+import org.apache.hadoop.hbase.coprocessor.ObserverContext;
import org.apache.hadoop.hbase.ipc.VersionedProtocol;
+
+
/**
* Clients interact with the HMasterInterface to gain access to meta-level
* HBase functionality, like finding an HRegionServer and creating/destroying
@@ -180,11 +184,21 @@
* found.
* @param force If true, will force the assignment.
* @throws IOException
+ * @deprecated The force is unused.Use {@link #assign(byte[])}
*/
public void assign(final byte [] regionName, final boolean force)
throws IOException;
/**
+ * Assign a region to a server chosen at random.
+ *
+ * @param regionName
+ * Region to assign. Will use existing RegionPlan if one found.
+ * @throws IOException
+ */
+ public void assign(final byte[] regionName) throws IOException;
+
+ /**
* Unassign a region from current hosting regionserver. Region will then be
* assigned to a regionserver chosen at random. Region could be reassigned
* back to the same server. Use {@link #move(byte[], byte[])} if you want
Index: src/main/java/org/apache/hadoop/hbase/master/HMaster.java
===================================================================
--- src/main/java/org/apache/hadoop/hbase/master/HMaster.java (revision 1170946)
+++ src/main/java/org/apache/hadoop/hbase/master/HMaster.java (working copy)
@@ -1330,23 +1330,31 @@
public boolean isInitialized() {
return initialized;
}
+
+ @Override
+ @Deprecated
+ public void assign(final byte[] regionName, final boolean force)
+ throws IOException {
+ assign(regionName);
+ }
@Override
- public void assign(final byte [] regionName, final boolean force)
- throws IOException {
+ public void assign(final byte [] regionName)throws IOException {
Pair pair =
MetaReader.getRegion(this.catalogTracker, regionName);
if (pair == null) throw new UnknownRegionException(Bytes.toString(regionName));
if (cpHost != null) {
- if (cpHost.preAssign(pair.getFirst(), force)) {
+ if (cpHost.preAssign(pair.getFirst())) {
return;
}
}
assignRegion(pair.getFirst());
if (cpHost != null) {
- cpHost.postAssign(pair.getFirst(), force);
+ cpHost.postAssign(pair.getFirst());
}
}
+
+
public void assignRegion(HRegionInfo hri) {
assignmentManager.assign(hri, true);
Index: src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
===================================================================
--- src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java (revision 1170946)
+++ src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java (working copy)
@@ -332,14 +332,13 @@
}
}
- boolean preAssign(final HRegionInfo regionInfo, final boolean force)
- throws IOException {
+ boolean preAssign(final HRegionInfo regionInfo) throws IOException {
boolean bypass = false;
ObserverContext ctx = null;
for (MasterEnvironment env: coprocessors) {
if (env.getInstance() instanceof MasterObserver) {
ctx = ObserverContext.createAndPrepare(env, ctx);
- ((MasterObserver)env.getInstance()).preAssign(ctx, regionInfo, force);
+ ((MasterObserver) env.getInstance()).preAssign(ctx, regionInfo);
bypass |= ctx.shouldBypass();
if (ctx.shouldComplete()) {
break;
@@ -349,12 +348,12 @@
return bypass;
}
- void postAssign(final HRegionInfo regionInfo, final boolean force) throws IOException {
+ void postAssign(final HRegionInfo regionInfo) throws IOException {
ObserverContext ctx = null;
for (MasterEnvironment env: coprocessors) {
if (env.getInstance() instanceof MasterObserver) {
ctx = ObserverContext.createAndPrepare(env, ctx);
- ((MasterObserver)env.getInstance()).postAssign(ctx, regionInfo, force);
+ ((MasterObserver) env.getInstance()).postAssign(ctx, regionInfo);
if (ctx.shouldComplete()) {
break;
}
Index: src/main/java/org/apache/hadoop/hbase/util/HBaseFsckRepair.java
===================================================================
--- src/main/java/org/apache/hadoop/hbase/util/HBaseFsckRepair.java (revision 1170946)
+++ src/main/java/org/apache/hadoop/hbase/util/HBaseFsckRepair.java (working copy)
@@ -80,7 +80,7 @@
private static void forceOfflineInZK(HBaseAdmin admin, final HRegionInfo region)
throws ZooKeeperConnectionException, KeeperException, IOException {
- admin.assign(region.getRegionName(), true);
+ admin.assign(region.getRegionName());
}
private static void closeRegionSilentlyAndWait(Configuration conf,
Index: src/main/ruby/hbase/admin.rb
===================================================================
--- src/main/ruby/hbase/admin.rb (revision 1170946)
+++ src/main/ruby/hbase/admin.rb (working copy)
@@ -230,8 +230,8 @@
#----------------------------------------------------------------------------------------------
#----------------------------------------------------------------------------------------------
# Assign a region
- def assign(region_name, force)
- @admin.assign(region_name.to_java_bytes, java.lang.Boolean::valueOf(force))
+ def assign(region_name)
+ @admin.assign(region_name.to_java_bytes)
end
#----------------------------------------------------------------------------------------------
Index: src/main/ruby/shell/commands/assign.rb
===================================================================
--- src/main/ruby/shell/commands/assign.rb (revision 1170946)
+++ src/main/ruby/shell/commands/assign.rb (working copy)
@@ -23,15 +23,15 @@
class Assign < Command
def help
return <<-EOF
-Assign a region. Add 'true' to force assign of a region. Use with caution.
-If region already assigned, this command will just go ahead and reassign
+Assign a region.Use with caution.If region already assigned,
+this command will just go ahead and reassign
the region anyways. For experts only.
EOF
end
- def command(region_name, force = 'false')
+ def command(region_name)
format_simple_command do
- admin.assign(region_name, force)
+ admin.assign(region_name)
end
end
end
Index: src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java
===================================================================
--- src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java (revision 1170946)
+++ src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java (working copy)
@@ -333,10 +333,10 @@
public boolean preMoveCalledOnly() {
return preMoveCalled && !postMoveCalled;
}
-
+
@Override
public void preAssign(ObserverContext env,
- final HRegionInfo regionInfo, final boolean force) throws IOException {
+ final HRegionInfo regionInfo) throws IOException {
if (bypass) {
env.bypass();
}
@@ -345,10 +345,10 @@
@Override
public void postAssign(ObserverContext env,
- final HRegionInfo regionInfo, final boolean force) throws IOException {
+ final HRegionInfo regionInfo) throws IOException {
postAssignCalled = true;
}
-
+
public boolean wasAssignCalled() {
return preAssignCalled && postAssignCalled;
}