HBASE-537 Wait for hdfs to exit safe mode
git-svn-id: https://svn.apache.org/repos/asf/hadoop/hbase/trunk@639858 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
a9d8d51663
commit
e7b705a808
@ -49,7 +49,8 @@ Hbase Change Log
|
|||||||
HBASE-528 table 'does not exist' when it does
|
HBASE-528 table 'does not exist' when it does
|
||||||
HBASE-531 Merge tool won't merge two overlapping regions (port HBASE-483 to
|
HBASE-531 Merge tool won't merge two overlapping regions (port HBASE-483 to
|
||||||
trunk)
|
trunk)
|
||||||
|
HBASE-537 Wait for hdfs to exit safe mode
|
||||||
|
|
||||||
IMPROVEMENTS
|
IMPROVEMENTS
|
||||||
HBASE-415 Rewrite leases to use DelayedBlockingQueue instead of polling
|
HBASE-415 Rewrite leases to use DelayedBlockingQueue instead of polling
|
||||||
HBASE-35 Make BatchUpdate public in the API
|
HBASE-35 Make BatchUpdate public in the API
|
||||||
|
@ -36,6 +36,8 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.apache.hadoop.dfs.DistributedFileSystem;
|
||||||
|
import org.apache.hadoop.dfs.FSConstants;
|
||||||
import org.apache.hadoop.fs.FileSystem;
|
import org.apache.hadoop.fs.FileSystem;
|
||||||
import org.apache.hadoop.fs.Path;
|
import org.apache.hadoop.fs.Path;
|
||||||
import org.apache.hadoop.hbase.io.Cell;
|
import org.apache.hadoop.hbase.io.Cell;
|
||||||
@ -171,10 +173,25 @@ public class HMaster extends Thread implements HConstants, HMasterInterface,
|
|||||||
throws IOException {
|
throws IOException {
|
||||||
this.conf = conf;
|
this.conf = conf;
|
||||||
this.rootdir = rd;
|
this.rootdir = rd;
|
||||||
|
this.threadWakeFrequency = conf.getInt(THREAD_WAKE_FREQUENCY, 10 * 1000);
|
||||||
// The filesystem hbase wants to use is probably not what is set into
|
// The filesystem hbase wants to use is probably not what is set into
|
||||||
// fs.default.name; its value is probably the default.
|
// fs.default.name; its value is probably the default.
|
||||||
this.conf.set("fs.default.name", this.rootdir.toString());
|
this.conf.set("fs.default.name", this.rootdir.toString());
|
||||||
this.fs = FileSystem.get(conf);
|
this.fs = FileSystem.get(conf);
|
||||||
|
if (this.fs instanceof DistributedFileSystem) {
|
||||||
|
// Make sure dfs is not in safe mode
|
||||||
|
String message = "Waiting for dfs to exit safe mode...";
|
||||||
|
while (((DistributedFileSystem) fs).setSafeMode(
|
||||||
|
FSConstants.SafeModeAction.SAFEMODE_GET)) {
|
||||||
|
System.out.println(message);
|
||||||
|
LOG.info(message);
|
||||||
|
try {
|
||||||
|
Thread.sleep(this.threadWakeFrequency);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
//continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
this.conf.set(HConstants.HBASE_DIR, this.rootdir.toString());
|
this.conf.set(HConstants.HBASE_DIR, this.rootdir.toString());
|
||||||
this.rand = new Random();
|
this.rand = new Random();
|
||||||
Path rootRegionDir =
|
Path rootRegionDir =
|
||||||
@ -215,7 +232,6 @@ public class HMaster extends Thread implements HConstants, HMasterInterface,
|
|||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.threadWakeFrequency = conf.getInt(THREAD_WAKE_FREQUENCY, 10 * 1000);
|
|
||||||
this.numRetries = conf.getInt("hbase.client.retries.number", 2);
|
this.numRetries = conf.getInt("hbase.client.retries.number", 2);
|
||||||
this.maxRegionOpenTime =
|
this.maxRegionOpenTime =
|
||||||
conf.getLong("hbase.hbasemaster.maxregionopen", 60 * 1000);
|
conf.getLong("hbase.hbasemaster.maxregionopen", 60 * 1000);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user