Signed-off-by: Viraj Jasani <vjasani@apache.org>
This commit is contained in:
parent
ed1a75905c
commit
b2d329b5d8
|
@ -280,7 +280,6 @@ public class HTableDescriptor implements WritableComparable<HTableDescriptor> {
|
|||
String.valueOf(DEFAULT_DEFERRED_LOG_FLUSH));
|
||||
DEFAULT_VALUES.put(DURABILITY, DEFAULT_DURABLITY.name()); //use the enum name
|
||||
DEFAULT_VALUES.put(REGION_REPLICATION, String.valueOf(DEFAULT_REGION_REPLICATION));
|
||||
DEFAULT_VALUES.put(NORMALIZATION_ENABLED, String.valueOf(DEFAULT_NORMALIZATION_ENABLED));
|
||||
DEFAULT_VALUES.put(PRIORITY, String.valueOf(DEFAULT_PRIORITY));
|
||||
for (String s : DEFAULT_VALUES.keySet()) {
|
||||
RESERVED_KEYWORDS.add(new ImmutableBytesWritable(Bytes.toBytes(s)));
|
||||
|
@ -684,7 +683,7 @@ public class HTableDescriptor implements WritableComparable<HTableDescriptor> {
|
|||
* @return true if region normalization is enabled for this table
|
||||
*/
|
||||
public boolean isNormalizationEnabled() {
|
||||
return isSomething(NORMALIZATION_ENABLED_KEY, DEFAULT_NORMALIZATION_ENABLED);
|
||||
return isSomething(NORMALIZATION_ENABLED_KEY, false);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -185,13 +185,13 @@ public class ZooKeeperWatcher implements Watcher, Abortable, Closeable {
|
|||
|
||||
/**
|
||||
* Instantiate a ZooKeeper connection and watcher.
|
||||
* @param identifier string that is passed to RecoverableZookeeper to be used as
|
||||
* identifier for this instance. Use null for default.
|
||||
* @param identifier string that is passed to RecoverableZookeeper to be used as identifier for
|
||||
* this instance. Use null for default.
|
||||
* @throws IOException
|
||||
* @throws ZooKeeperConnectionException
|
||||
*/
|
||||
public ZooKeeperWatcher(Configuration conf, String identifier,
|
||||
Abortable abortable) throws ZooKeeperConnectionException, IOException {
|
||||
public ZooKeeperWatcher(Configuration conf, String identifier, Abortable abortable)
|
||||
throws ZooKeeperConnectionException, IOException {
|
||||
this(conf, identifier, abortable, false);
|
||||
}
|
||||
|
||||
|
|
|
@ -642,6 +642,13 @@ possible configurations would overwhelm and obscure the important.
|
|||
<description>The minimum size for a region to be considered for a merge, in whole MBs.
|
||||
</description>
|
||||
</property>
|
||||
<property>
|
||||
<name>hbase.table.normalization.enabled</name>
|
||||
<value>false</value>
|
||||
<description>This config is used to set default behaviour of normalizer at table level. To override this at table
|
||||
level one can set NORMALIZATION_ENABLED at table descriptor level and that property will be honored
|
||||
</description>
|
||||
</property>
|
||||
<property>
|
||||
<name>hbase.server.thread.wakefrequency</name>
|
||||
<value>10000</value>
|
||||
|
|
|
@ -205,7 +205,8 @@ import org.mortbay.jetty.servlet.ServletHolder;
|
|||
@SuppressWarnings("deprecation")
|
||||
public class HMaster extends HRegionServer implements MasterServices, Server {
|
||||
private static final Log LOG = LogFactory.getLog(HMaster.class.getName());
|
||||
|
||||
public static final String HBASE_TABLE_NORMALIZATION_ENABLED =
|
||||
"hbase.table.normalization.enabled";
|
||||
/**
|
||||
* Protection against zombie master. Started once Master accepts active responsibility and
|
||||
* starts taking over responsibilities. Allows a finite time window before giving up ownership.
|
||||
|
@ -381,6 +382,7 @@ public class HMaster extends HRegionServer implements MasterServices, Server {
|
|||
|
||||
private long splitPlanCount;
|
||||
private long mergePlanCount;
|
||||
private boolean defaultNormalizerTableLevel;
|
||||
|
||||
/** flag used in test cases in order to simulate RS failures during master initialization */
|
||||
private volatile boolean initializationBeforeMetaAssignment = false;
|
||||
|
@ -529,6 +531,7 @@ public class HMaster extends HRegionServer implements MasterServices, Server {
|
|||
activeMasterManager = null;
|
||||
}
|
||||
cachedClusterId = new CachedClusterId(conf);
|
||||
this.defaultNormalizerTableLevel = extractDefaultNormalizerValue(conf);
|
||||
}
|
||||
|
||||
// return the actual infoPort, -1 means disable info server.
|
||||
|
@ -1117,6 +1120,11 @@ public class HMaster extends HRegionServer implements MasterServices, Server {
|
|||
status.setStatus("META assigned.");
|
||||
}
|
||||
|
||||
private boolean extractDefaultNormalizerValue(final Configuration configuration) {
|
||||
String s = configuration.get(HBASE_TABLE_NORMALIZATION_ENABLED);
|
||||
return Boolean.parseBoolean(s);
|
||||
}
|
||||
|
||||
private void assignMetaZkLess(RegionStates regionStates, RegionState regionState, long timeout,
|
||||
Set<ServerName> previouslyFailedRs) throws IOException, KeeperException {
|
||||
ServerName currentServer = regionState.getServerName();
|
||||
|
@ -1692,13 +1700,21 @@ public class HMaster extends HRegionServer implements MasterServices, Server {
|
|||
if (table.isSystemTable()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
boolean normalizationEnabled;
|
||||
HTableDescriptor tableDescriptor = getTableDescriptors().get(table);
|
||||
if (tableDescriptor != null && !tableDescriptor.isNormalizationEnabled()) {
|
||||
LOG.debug("Skipping normalization for table: " + table
|
||||
+ ", as it doesn't have auto normalization turned on");
|
||||
if (tableDescriptor != null) {
|
||||
String defined = tableDescriptor.getValue(HTableDescriptor.NORMALIZATION_ENABLED);
|
||||
if (defined != null) {
|
||||
normalizationEnabled = tableDescriptor.isNormalizationEnabled();
|
||||
} else {
|
||||
normalizationEnabled = this.defaultNormalizerTableLevel;
|
||||
}
|
||||
if (!normalizationEnabled) {
|
||||
LOG.debug("Skipping table " + table + " because normalization is disabled in its "
|
||||
+ "table properties and normalization is also disabled at table level by default");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
// make one last check that the cluster isn't shutting down before proceeding.
|
||||
if (skipRegionManagementAction("region normalizer")) {
|
||||
return false;
|
||||
|
|
Loading…
Reference in New Issue