HBASE-3658 Alert when heap is over committed
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1085195 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
cad0a1bb9c
commit
5f69f20011
|
@ -186,7 +186,6 @@ Release 0.90.2 - Unreleased
|
||||||
HBASE-3497 TableMapReduceUtil.initTableReducerJob broken due to setConf
|
HBASE-3497 TableMapReduceUtil.initTableReducerJob broken due to setConf
|
||||||
method in TableOutputFormat
|
method in TableOutputFormat
|
||||||
|
|
||||||
|
|
||||||
IMPROVEMENTS
|
IMPROVEMENTS
|
||||||
HBASE-3542 MultiGet methods in Thrift
|
HBASE-3542 MultiGet methods in Thrift
|
||||||
HBASE-3586 Improve the selection of regions to balance (Ted Yu via Andrew
|
HBASE-3586 Improve the selection of regions to balance (Ted Yu via Andrew
|
||||||
|
@ -206,6 +205,7 @@ Release 0.90.2 - Unreleased
|
||||||
HBASE-3596 [replication] Wait a few seconds before transferring queues
|
HBASE-3596 [replication] Wait a few seconds before transferring queues
|
||||||
HBASE-3600 Update our jruby to 1.6.0
|
HBASE-3600 Update our jruby to 1.6.0
|
||||||
HBASE-3640 [replication] Transferring queues shouldn't be done inline with RS startup
|
HBASE-3640 [replication] Transferring queues shouldn't be done inline with RS startup
|
||||||
|
HBASE-3658 Alert when heap is over committed (Subbu M Iyer via Stack)
|
||||||
|
|
||||||
Release 0.90.1 - February 9th, 2011
|
Release 0.90.1 - February 9th, 2011
|
||||||
|
|
||||||
|
|
|
@ -70,11 +70,25 @@ public class HBaseConfiguration extends Configuration {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void checkForClusterFreeMemoryLimit(Configuration conf) {
|
||||||
|
float globalMemstoreLimit = conf.getFloat("hbase.regionserver.global.memstore.upperLimit", 0.4f);
|
||||||
|
float blockCacheUpperLimit = conf.getFloat("hfile.block.cache.size", 0.2f);
|
||||||
|
if (1.0f - (globalMemstoreLimit + blockCacheUpperLimit)
|
||||||
|
< HConstants.HBASE_CLUSTER_MINIMUM_MEMORY_THRESHOLD) {
|
||||||
|
throw new RuntimeException(
|
||||||
|
"Current heap configuration for MemStore and BlockCache exceeds the threshold required for " +
|
||||||
|
"successful cluster operation. The combined value cannot exceed 0.8. Please check " +
|
||||||
|
"the settings for hbase.regionserver.global.memstore.upperLimit and" +
|
||||||
|
" hfile.block.cache.size in your configuration.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static Configuration addHbaseResources(Configuration conf) {
|
public static Configuration addHbaseResources(Configuration conf) {
|
||||||
conf.addResource("hbase-default.xml");
|
conf.addResource("hbase-default.xml");
|
||||||
conf.addResource("hbase-site.xml");
|
conf.addResource("hbase-site.xml");
|
||||||
|
|
||||||
checkDefaultsVersion(conf);
|
checkDefaultsVersion(conf);
|
||||||
|
checkForClusterFreeMemoryLimit(conf);
|
||||||
return conf;
|
return conf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -364,6 +364,11 @@ public final class HConstants {
|
||||||
public static final String HBASE_MASTER_LOGCLEANER_PLUGINS =
|
public static final String HBASE_MASTER_LOGCLEANER_PLUGINS =
|
||||||
"hbase.master.logcleaner.plugins";
|
"hbase.master.logcleaner.plugins";
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Minimum percentage of free heap necessary for a successful cluster startup.
|
||||||
|
*/
|
||||||
|
public static final float HBASE_CLUSTER_MINIMUM_MEMORY_THRESHOLD = 0.2f;
|
||||||
|
|
||||||
private HConstants() {
|
private HConstants() {
|
||||||
// Can't be instantiated with this ctor.
|
// Can't be instantiated with this ctor.
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue