HBASE-6236 revert upon Jimmy's request.
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1353013 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
8645a42880
commit
e88c89f01f
@ -150,9 +150,6 @@ public class HBaseFsck {
|
|||||||
private static final int DEFAULT_OVERLAPS_TO_SIDELINE = 2;
|
private static final int DEFAULT_OVERLAPS_TO_SIDELINE = 2;
|
||||||
private static final int DEFAULT_MAX_MERGE = 5;
|
private static final int DEFAULT_MAX_MERGE = 5;
|
||||||
|
|
||||||
private static final String DEFAULT_SIDELINE_DIR = ".hbcktmp-" +
|
|
||||||
System.currentTimeMillis();
|
|
||||||
|
|
||||||
/**********************
|
/**********************
|
||||||
* Internal resources
|
* Internal resources
|
||||||
**********************/
|
**********************/
|
||||||
@ -163,6 +160,7 @@ public class HBaseFsck {
|
|||||||
private HBaseAdmin admin;
|
private HBaseAdmin admin;
|
||||||
private HTable meta;
|
private HTable meta;
|
||||||
private ScheduledThreadPoolExecutor executor; // threads to retrieve data from regionservers
|
private ScheduledThreadPoolExecutor executor; // threads to retrieve data from regionservers
|
||||||
|
private long startMillis = System.currentTimeMillis();
|
||||||
|
|
||||||
/***********
|
/***********
|
||||||
* Options
|
* Options
|
||||||
@ -183,7 +181,6 @@ public class HBaseFsck {
|
|||||||
private int maxMerge = DEFAULT_MAX_MERGE; // maximum number of overlapping regions to merge
|
private int maxMerge = DEFAULT_MAX_MERGE; // maximum number of overlapping regions to merge
|
||||||
private int maxOverlapsToSideline = DEFAULT_OVERLAPS_TO_SIDELINE; // maximum number of overlapping regions to sideline
|
private int maxOverlapsToSideline = DEFAULT_OVERLAPS_TO_SIDELINE; // maximum number of overlapping regions to sideline
|
||||||
private boolean sidelineBigOverlaps = false; // sideline overlaps with >maxMerge regions
|
private boolean sidelineBigOverlaps = false; // sideline overlaps with >maxMerge regions
|
||||||
private Path sidelineDir = null;
|
|
||||||
|
|
||||||
private boolean rerun = false; // if we tried to fix something, rerun hbck
|
private boolean rerun = false; // if we tried to fix something, rerun hbck
|
||||||
private static boolean summary = false; // if we want to print less output
|
private static boolean summary = false; // if we want to print less output
|
||||||
@ -820,7 +817,7 @@ public class HBaseFsck {
|
|||||||
|
|
||||||
// we can rebuild, move old root and meta out of the way and start
|
// we can rebuild, move old root and meta out of the way and start
|
||||||
LOG.info("HDFS regioninfo's seems good. Sidelining old .META.");
|
LOG.info("HDFS regioninfo's seems good. Sidelining old .META.");
|
||||||
Path backupDir = sidelineOldRootAndMeta();
|
sidelineOldRootAndMeta();
|
||||||
|
|
||||||
LOG.info("Creating new .META.");
|
LOG.info("Creating new .META.");
|
||||||
HRegion meta = createNewRootAndMeta();
|
HRegion meta = createNewRootAndMeta();
|
||||||
@ -835,7 +832,6 @@ public class HBaseFsck {
|
|||||||
meta.put(puts.toArray(new Put[0]));
|
meta.put(puts.toArray(new Put[0]));
|
||||||
HRegion.closeHRegion(meta);
|
HRegion.closeHRegion(meta);
|
||||||
LOG.info("Success! .META. table rebuilt.");
|
LOG.info("Success! .META. table rebuilt.");
|
||||||
LOG.info("Old -ROOT- and .META. are moved into " + backupDir);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -859,11 +855,11 @@ public class HBaseFsck {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Path getSidelineDir() throws IOException {
|
private Path getSidelineDir() throws IOException {
|
||||||
if (sidelineDir == null) {
|
Path hbaseDir = FSUtils.getRootDir(conf);
|
||||||
Path hbaseDir = FSUtils.getRootDir(conf);
|
Path hbckDir = new Path(hbaseDir.getParent(), "hbck");
|
||||||
sidelineDir = new Path(hbaseDir, DEFAULT_SIDELINE_DIR);
|
Path backupDir = new Path(hbckDir, hbaseDir.getName() + "-"
|
||||||
}
|
+ startMillis);
|
||||||
return sidelineDir;
|
return backupDir;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -961,7 +957,8 @@ public class HBaseFsck {
|
|||||||
// put current -ROOT- and .META. aside.
|
// put current -ROOT- and .META. aside.
|
||||||
Path hbaseDir = new Path(conf.get(HConstants.HBASE_DIR));
|
Path hbaseDir = new Path(conf.get(HConstants.HBASE_DIR));
|
||||||
FileSystem fs = hbaseDir.getFileSystem(conf);
|
FileSystem fs = hbaseDir.getFileSystem(conf);
|
||||||
Path backupDir = getSidelineDir();
|
Path backupDir = new Path(hbaseDir.getParent(), hbaseDir.getName() + "-"
|
||||||
|
+ startMillis);
|
||||||
fs.mkdirs(backupDir);
|
fs.mkdirs(backupDir);
|
||||||
|
|
||||||
sidelineTable(fs, HConstants.ROOT_TABLE_NAME, hbaseDir, backupDir);
|
sidelineTable(fs, HConstants.ROOT_TABLE_NAME, hbaseDir, backupDir);
|
||||||
@ -2989,14 +2986,6 @@ public class HBaseFsck {
|
|||||||
timelag = seconds * 1000; // convert to milliseconds
|
timelag = seconds * 1000; // convert to milliseconds
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param sidelineDir - HDFS path to sideline data
|
|
||||||
*/
|
|
||||||
public void setSidelineDir(String sidelineDir) {
|
|
||||||
this.sidelineDir = new Path(sidelineDir);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected static void printUsageAndExit() {
|
protected static void printUsageAndExit() {
|
||||||
System.err.println("Usage: fsck [opts] {only tables}");
|
System.err.println("Usage: fsck [opts] {only tables}");
|
||||||
System.err.println(" where [opts] are:");
|
System.err.println(" where [opts] are:");
|
||||||
|
@ -51,8 +51,6 @@ public class OfflineMetaRepair {
|
|||||||
System.err
|
System.err
|
||||||
.println(" -details Display full report of all regions.");
|
.println(" -details Display full report of all regions.");
|
||||||
System.err.println(" -base <hdfs://> Base Hbase Data directory");
|
System.err.println(" -base <hdfs://> Base Hbase Data directory");
|
||||||
System.err
|
|
||||||
.println(" -sidelineDir <hdfs://> HDFS path to backup existing meta and root.");
|
|
||||||
System.err.println(" -fix Auto fix as many problems as possible");
|
System.err.println(" -fix Auto fix as many problems as possible");
|
||||||
System.err.println(" -fixHoles Auto fix as region holes");
|
System.err.println(" -fixHoles Auto fix as region holes");
|
||||||
Runtime.getRuntime().exit(-2);
|
Runtime.getRuntime().exit(-2);
|
||||||
@ -87,9 +85,6 @@ public class OfflineMetaRepair {
|
|||||||
conf.set(HConstants.HBASE_DIR, path);
|
conf.set(HConstants.HBASE_DIR, path);
|
||||||
conf.set("fs.defaultFS", conf.get(HConstants.HBASE_DIR));
|
conf.set("fs.defaultFS", conf.get(HConstants.HBASE_DIR));
|
||||||
conf.set("fs.default.name", conf.get(HConstants.HBASE_DIR));
|
conf.set("fs.default.name", conf.get(HConstants.HBASE_DIR));
|
||||||
} else if (cmd.equals("-sidelineDir")) {
|
|
||||||
i++;
|
|
||||||
fsck.setSidelineDir(args[i]);
|
|
||||||
} else if (cmd.equals("-fixHoles")) {
|
} else if (cmd.equals("-fixHoles")) {
|
||||||
fixHoles = true;
|
fixHoles = true;
|
||||||
} else if (cmd.equals("-fix")) {
|
} else if (cmd.equals("-fix")) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user