HBASE-548 Tool to online single region
M branches/0.1/src/java/org/apache/hadoop/hbase/util/MetaUtils.java M trunk/src/java/org/apache/hadoop/hbase/util/MetaUtils.java (changeOnlineStatus): Added. git-svn-id: https://svn.apache.org/repos/asf/hadoop/hbase/trunk@643486 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
f15048d4d0
commit
6c124cd285
@ -7,6 +7,9 @@ Hbase Change Log
|
|||||||
HBASE-505 Region assignments should never time out so long as the region
|
HBASE-505 Region assignments should never time out so long as the region
|
||||||
server reports that it is processing the open request
|
server reports that it is processing the open request
|
||||||
|
|
||||||
|
NEW FEATURES
|
||||||
|
HBASE-548 Tool to online single region
|
||||||
|
|
||||||
Release 0.1.0
|
Release 0.1.0
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
@ -40,6 +40,7 @@ import org.apache.hadoop.hbase.regionserver.HRegion;
|
|||||||
import org.apache.hadoop.hbase.HRegionInfo;
|
import org.apache.hadoop.hbase.HRegionInfo;
|
||||||
import org.apache.hadoop.hbase.HScannerInterface;
|
import org.apache.hadoop.hbase.HScannerInterface;
|
||||||
import org.apache.hadoop.hbase.HStoreKey;
|
import org.apache.hadoop.hbase.HStoreKey;
|
||||||
|
import org.apache.hadoop.hbase.HTable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contains utility methods for manipulating HBase meta tables
|
* Contains utility methods for manipulating HBase meta tables
|
||||||
@ -295,4 +296,32 @@ public class MetaUtils {
|
|||||||
meta.compactStores();
|
meta.compactStores();
|
||||||
return meta;
|
return meta;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
/**
|
||||||
|
* Set a single region on/offline.
|
||||||
|
* This is a tool to repair tables that have offlined tables in their midst.
|
||||||
|
* Can happen on occasion. Use at your own risk. Call from a bit of java
|
||||||
|
* or jython script. This method is 'expensive' in that it creates a
|
||||||
|
* {@link HTable} instance per invocation to go against <code>.META.</code>
|
||||||
|
* @param c A configuration that has its <code>hbase.master</code>
|
||||||
|
* properly set.
|
||||||
|
* @param row Row in the catalog .META. table whose HRegionInfo's offline
|
||||||
|
* status we want to change.
|
||||||
|
* @param onlineOffline Pass <code>true</code> to online the region.
|
||||||
|
* @throws IOException
|
||||||
|
*/
|
||||||
|
public static void changeOnlineStatus (final HBaseConfiguration c,
|
||||||
|
final Text row, final boolean onlineOffline)
|
||||||
|
throws IOException {
|
||||||
|
HTable t = new HTable(c, HConstants.META_TABLE_NAME);
|
||||||
|
byte [] cell = t.get(row, HConstants.COL_REGIONINFO);
|
||||||
|
// Throws exception if null.
|
||||||
|
HRegionInfo info = Writables.getHRegionInfo(cell);
|
||||||
|
long id = t.startUpdate(row);
|
||||||
|
info.setOffline(onlineOffline);
|
||||||
|
t.put(id, HConstants.COL_REGIONINFO, Writables.getBytes(info));
|
||||||
|
t.delete(id, HConstants.COL_SERVER);
|
||||||
|
t.delete(id, HConstants.COL_STARTCODE);
|
||||||
|
t.commit(id);
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user