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 2012/07/13 05:29:09 UTC
svn commit: r1361038 -
/hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java
Author: jxiang
Date: Fri Jul 13 03:29:08 2012
New Revision: 1361038
URL: http://svn.apache.org/viewvc?rev=1361038&view=rev
Log:
HBASE-6384 hbck should group together those sidelined regions need to be bulk loaded later
Modified:
hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java
Modified: hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java?rev=1361038&r1=1361037&r2=1361038&view=diff
==============================================================================
--- hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java (original)
+++ hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java Fri Jul 13 03:29:08 2012
@@ -139,6 +139,7 @@ public class HBaseFsck {
private static boolean rsSupportsOffline = true;
private static final int DEFAULT_OVERLAPS_TO_SIDELINE = 2;
private static final int DEFAULT_MAX_MERGE = 5;
+ private static final String TO_BE_LOADED = "to_be_loaded";
/**********************
* Internal resources
@@ -839,8 +840,20 @@ public class HBaseFsck {
/**
* Sideline a region dir (instead of deleting it)
*/
- Path sidelineRegionDir(FileSystem fs, HbckInfo hi)
- throws IOException {
+ Path sidelineRegionDir(FileSystem fs, HbckInfo hi) throws IOException {
+ return sidelineRegionDir(fs, null, hi);
+ }
+
+ /**
+ * Sideline a region dir (instead of deleting it)
+ *
+ * @param parentDir if specified, the region will be sidelined to
+ * folder like .../parentDir/<table name>/<region name>. The purpose
+ * is to group together similar regions sidelined, for example, those
+ * regions should be bulk loaded back later on. If null, it is ignored.
+ */
+ Path sidelineRegionDir(FileSystem fs,
+ String parentDir, HbckInfo hi) throws IOException {
String tableName = Bytes.toString(hi.getTableName());
Path regionDir = hi.getHdfsRegionDir();
@@ -849,7 +862,11 @@ public class HBaseFsck {
return null;
}
- Path sidelineTableDir= new Path(getSidelineDir(), tableName);
+ Path rootDir = getSidelineDir();
+ if (parentDir != null) {
+ rootDir = new Path(rootDir, parentDir);
+ }
+ Path sidelineTableDir= new Path(rootDir, tableName);
Path sidelineRegionDir = new Path(sidelineTableDir, regionDir.getName());
fs.mkdirs(sidelineRegionDir);
boolean success = false;
@@ -1951,7 +1968,7 @@ public class HBaseFsck {
offline(regionToSideline.getRegionName());
LOG.info("Before sideline big overlapped region: " + regionToSideline.toString());
- Path sidelineRegionDir = sidelineRegionDir(fs, regionToSideline);
+ Path sidelineRegionDir = sidelineRegionDir(fs, TO_BE_LOADED, regionToSideline);
if (sidelineRegionDir != null) {
sidelinedRegions.put(sidelineRegionDir, regionToSideline);
LOG.info("After sidelined big overlapped region: "