HBASE-15989 Remove hbase.online.schema.update.enable
This commit is contained in:
parent
d5d9b7d500
commit
d9463bcce0
|
@ -516,9 +516,9 @@ public class ReplicationAdmin implements Closeable {
|
|||
if (repPeers == null || repPeers.size() <= 0) {
|
||||
throw new IllegalArgumentException("Found no peer cluster for replication.");
|
||||
}
|
||||
|
||||
|
||||
final TableName onlyTableNameQualifier = TableName.valueOf(tableName.getQualifierAsString());
|
||||
|
||||
|
||||
for (ReplicationPeer repPeer : repPeers) {
|
||||
Map<TableName, List<String>> tableCFMap = repPeer.getTableCFs();
|
||||
// TODO Currently peer TableCFs will not include namespace so we need to check only for table
|
||||
|
@ -595,20 +595,11 @@ public class ReplicationAdmin implements Closeable {
|
|||
admin = this.connection.getAdmin();
|
||||
HTableDescriptor htd = admin.getTableDescriptor(tableName);
|
||||
if (isTableRepEnabled(htd) ^ isRepEnabled) {
|
||||
boolean isOnlineSchemaUpdateEnabled =
|
||||
this.connection.getConfiguration()
|
||||
.getBoolean("hbase.online.schema.update.enable", true);
|
||||
if (!isOnlineSchemaUpdateEnabled) {
|
||||
admin.disableTable(tableName);
|
||||
}
|
||||
for (HColumnDescriptor hcd : htd.getFamilies()) {
|
||||
hcd.setScope(isRepEnabled ? HConstants.REPLICATION_SCOPE_GLOBAL
|
||||
: HConstants.REPLICATION_SCOPE_LOCAL);
|
||||
}
|
||||
admin.modifyTable(tableName, htd);
|
||||
if (!isOnlineSchemaUpdateEnabled) {
|
||||
admin.enableTable(tableName);
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
if (admin != null) {
|
||||
|
|
|
@ -562,7 +562,7 @@ possible configurations would overwhelm and obscure the important.
|
|||
<property>
|
||||
<name>hbase.regions.slop</name>
|
||||
<value>0.001</value>
|
||||
<description>Rebalance if any regionserver has average + (average * slop) regions.
|
||||
<description>Rebalance if any regionserver has average + (average * slop) regions.
|
||||
The default value of this parameter is 0.001 in StochasticLoadBalancer (the default load balancer),
|
||||
while the default is 0.2 in other load balancers (i.e., SimpleLoadBalancer).</description>
|
||||
</property>
|
||||
|
@ -865,7 +865,7 @@ possible configurations would overwhelm and obscure the important.
|
|||
Must be a multiple of 1024 else you will run into
|
||||
'java.io.IOException: Invalid HFile block magic' when you go to read from cache.
|
||||
If you specify no values here, then you pick up the default bucketsizes set
|
||||
in code (See BucketAllocator#DEFAULT_BUCKET_SIZES).
|
||||
in code (See BucketAllocator#DEFAULT_BUCKET_SIZES).
|
||||
</description>
|
||||
</property>
|
||||
<property>
|
||||
|
@ -1131,11 +1131,6 @@ possible configurations would overwhelm and obscure the important.
|
|||
will become inconsistent as it will be properly executing in only a subset
|
||||
of servers, so this is most useful for debugging only.</description>
|
||||
</property>
|
||||
<property>
|
||||
<name>hbase.online.schema.update.enable</name>
|
||||
<value>true</value>
|
||||
<description>Set true to enable online schema changes.</description>
|
||||
</property>
|
||||
<property>
|
||||
<name>hbase.table.lock.enable</name>
|
||||
<value>true</value>
|
||||
|
|
|
@ -55,14 +55,6 @@ public final class MasterDDLOperationHelper {
|
|||
|
||||
private MasterDDLOperationHelper() {}
|
||||
|
||||
/**
|
||||
* Check whether online schema change is allowed from config
|
||||
**/
|
||||
public static boolean isOnlineSchemaChangeAllowed(final MasterProcedureEnv env) {
|
||||
return env.getMasterServices().getConfiguration()
|
||||
.getBoolean("hbase.online.schema.update.enable", false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether a table is modifiable - exists and either offline or online with config set
|
||||
* @param env MasterProcedureEnv
|
||||
|
@ -75,13 +67,6 @@ public final class MasterDDLOperationHelper {
|
|||
if (!MetaTableAccessor.tableExists(env.getMasterServices().getConnection(), tableName)) {
|
||||
throw new TableNotFoundException(tableName);
|
||||
}
|
||||
|
||||
// We only execute this procedure with table online if online schema change config is set.
|
||||
if (!env.getMasterServices().getTableStateManager()
|
||||
.isTableState(tableName, TableState.State.DISABLED)
|
||||
&& !MasterDDLOperationHelper.isOnlineSchemaChangeAllowed(env)) {
|
||||
throw new TableNotDisabledException(tableName);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -300,11 +300,6 @@ public class ModifyTableProcedure
|
|||
|
||||
if (env.getMasterServices().getTableStateManager()
|
||||
.isTableState(getTableName(), TableState.State.ENABLED)) {
|
||||
// We only execute this procedure with table online if online schema change config is set.
|
||||
if (!MasterDDLOperationHelper.isOnlineSchemaChangeAllowed(env)) {
|
||||
throw new TableNotDisabledException(getTableName());
|
||||
}
|
||||
|
||||
if (modifiedHTableDescriptor.getRegionReplication() != unmodifiedHTableDescriptor
|
||||
.getRegionReplication()) {
|
||||
throw new IOException("REGION_REPLICATION change is not supported for enabled tables");
|
||||
|
|
|
@ -85,7 +85,6 @@ public class TestAdmin1 {
|
|||
|
||||
@BeforeClass
|
||||
public static void setUpBeforeClass() throws Exception {
|
||||
TEST_UTIL.getConfiguration().setBoolean("hbase.online.schema.update.enable", true);
|
||||
TEST_UTIL.getConfiguration().setInt("hbase.regionserver.msginterval", 100);
|
||||
TEST_UTIL.getConfiguration().setInt("hbase.client.pause", 250);
|
||||
TEST_UTIL.getConfiguration().setInt("hbase.client.retries.number", 6);
|
||||
|
@ -503,8 +502,6 @@ public class TestAdmin1 {
|
|||
public void testOnlineChangeTableSchema() throws IOException, InterruptedException {
|
||||
final TableName tableName =
|
||||
TableName.valueOf("changeTableSchemaOnline");
|
||||
TEST_UTIL.getMiniHBaseCluster().getMaster().getConfiguration().setBoolean(
|
||||
"hbase.online.schema.update.enable", true);
|
||||
HTableDescriptor [] tables = admin.listTables();
|
||||
int numTables = tables.length;
|
||||
TEST_UTIL.createTable(tableName, HConstants.CATALOG_FAMILY).close();
|
||||
|
@ -588,45 +585,6 @@ public class TestAdmin1 {
|
|||
assertFalse(this.admin.tableExists(tableName));
|
||||
}
|
||||
|
||||
@Test (timeout=300000)
|
||||
public void testShouldFailOnlineSchemaUpdateIfOnlineSchemaIsNotEnabled()
|
||||
throws Exception {
|
||||
final TableName tableName = TableName.valueOf("changeTableSchemaOnlineFailure");
|
||||
TEST_UTIL.getMiniHBaseCluster().getMaster().getConfiguration().setBoolean(
|
||||
"hbase.online.schema.update.enable", false);
|
||||
HTableDescriptor[] tables = admin.listTables();
|
||||
int numTables = tables.length;
|
||||
TEST_UTIL.createTable(tableName, HConstants.CATALOG_FAMILY).close();
|
||||
tables = this.admin.listTables();
|
||||
assertEquals(numTables + 1, tables.length);
|
||||
|
||||
// FIRST, do htabledescriptor changes.
|
||||
HTableDescriptor htd = this.admin.getTableDescriptor(tableName);
|
||||
// Make a copy and assert copy is good.
|
||||
HTableDescriptor copy = new HTableDescriptor(htd);
|
||||
assertTrue(htd.equals(copy));
|
||||
// Now amend the copy. Introduce differences.
|
||||
long newFlushSize = htd.getMemStoreFlushSize() / 2;
|
||||
if (newFlushSize <=0) {
|
||||
newFlushSize = HTableDescriptor.DEFAULT_MEMSTORE_FLUSH_SIZE / 2;
|
||||
}
|
||||
copy.setMemStoreFlushSize(newFlushSize);
|
||||
final String key = "anyoldkey";
|
||||
assertTrue(htd.getValue(key) == null);
|
||||
copy.setValue(key, key);
|
||||
boolean expectedException = false;
|
||||
try {
|
||||
admin.modifyTable(tableName, copy);
|
||||
} catch (TableNotDisabledException re) {
|
||||
expectedException = true;
|
||||
}
|
||||
assertTrue("Online schema update should not happen.", expectedException);
|
||||
|
||||
// Reset the value for the other tests
|
||||
TEST_UTIL.getMiniHBaseCluster().getMaster().getConfiguration().setBoolean(
|
||||
"hbase.online.schema.update.enable", true);
|
||||
}
|
||||
|
||||
protected void verifyRoundRobinDistribution(ClusterConnection c, RegionLocator regionLocator, int
|
||||
expectedRegions) throws IOException {
|
||||
int numRS = c.getCurrentNrHRS();
|
||||
|
|
|
@ -83,7 +83,6 @@ public class TestAdmin2 {
|
|||
|
||||
@BeforeClass
|
||||
public static void setUpBeforeClass() throws Exception {
|
||||
TEST_UTIL.getConfiguration().setBoolean("hbase.online.schema.update.enable", true);
|
||||
TEST_UTIL.getConfiguration().setInt("hbase.regionserver.msginterval", 100);
|
||||
TEST_UTIL.getConfiguration().setInt("hbase.client.pause", 250);
|
||||
TEST_UTIL.getConfiguration().setInt("hbase.client.retries.number", 6);
|
||||
|
|
|
@ -61,7 +61,6 @@ public class TestCloneSnapshotFromClient {
|
|||
|
||||
protected static void setupConfiguration() {
|
||||
TEST_UTIL.getConfiguration().setBoolean(SnapshotManager.HBASE_SNAPSHOT_ENABLED, true);
|
||||
TEST_UTIL.getConfiguration().setBoolean("hbase.online.schema.update.enable", true);
|
||||
TEST_UTIL.getConfiguration().setInt("hbase.hstore.compactionThreshold", 10);
|
||||
TEST_UTIL.getConfiguration().setInt("hbase.regionserver.msginterval", 100);
|
||||
TEST_UTIL.getConfiguration().setInt("hbase.client.pause", 250);
|
||||
|
|
|
@ -70,8 +70,6 @@ public class TestFromClientSide3 {
|
|||
*/
|
||||
@BeforeClass
|
||||
public static void setUpBeforeClass() throws Exception {
|
||||
TEST_UTIL.getConfiguration().setBoolean(
|
||||
"hbase.online.schema.update.enable", true);
|
||||
TEST_UTIL.startMiniCluster(SLAVES);
|
||||
}
|
||||
|
||||
|
|
|
@ -83,7 +83,6 @@ public class TestRestoreSnapshotFromClient {
|
|||
|
||||
protected static void setupConf(Configuration conf) {
|
||||
TEST_UTIL.getConfiguration().setBoolean(SnapshotManager.HBASE_SNAPSHOT_ENABLED, true);
|
||||
TEST_UTIL.getConfiguration().setBoolean("hbase.online.schema.update.enable", true);
|
||||
TEST_UTIL.getConfiguration().setInt("hbase.hstore.compactionThreshold", 10);
|
||||
TEST_UTIL.getConfiguration().setInt("hbase.regionserver.msginterval", 100);
|
||||
TEST_UTIL.getConfiguration().setInt("hbase.client.pause", 250);
|
||||
|
|
|
@ -103,7 +103,6 @@ public class TestChangingEncoding {
|
|||
conf.setInt(HConstants.HREGION_MEMSTORE_FLUSH_SIZE, 1024 * 1024);
|
||||
// ((Log4JLogger)RpcServerImplementation.LOG).getLogger().setLevel(Level.TRACE);
|
||||
// ((Log4JLogger)RpcClient.LOG).getLogger().setLevel(Level.TRACE);
|
||||
conf.setBoolean("hbase.online.schema.update.enable", true);
|
||||
TEST_UTIL.startMiniCluster();
|
||||
}
|
||||
|
||||
|
|
|
@ -88,7 +88,6 @@ public class TestTableLockManager {
|
|||
private static final CountDownLatch addColumn = new CountDownLatch(1);
|
||||
|
||||
public void prepareMiniCluster() throws Exception {
|
||||
TEST_UTIL.getConfiguration().setBoolean("hbase.online.schema.update.enable", true);
|
||||
TEST_UTIL.startMiniCluster(2);
|
||||
TEST_UTIL.createTable(TABLE_NAME, FAMILY);
|
||||
}
|
||||
|
|
|
@ -80,8 +80,6 @@ public class TestEncryptionKeyRotation {
|
|||
conf.setInt("hfile.format.version", 3);
|
||||
conf.set(HConstants.CRYPTO_KEYPROVIDER_CONF_KEY, KeyProviderForTesting.class.getName());
|
||||
conf.set(HConstants.CRYPTO_MASTERKEY_NAME_CONF_KEY, "hbase");
|
||||
// Enable online schema updates
|
||||
conf.setBoolean("hbase.online.schema.update.enable", true);
|
||||
|
||||
// Start the minicluster
|
||||
TEST_UTIL.startMiniCluster(1);
|
||||
|
@ -229,7 +227,7 @@ public class TestEncryptionKeyRotation {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static List<Path> findStorefilePaths(TableName tableName) throws Exception {
|
||||
List<Path> paths = new ArrayList<Path>();
|
||||
for (Region region:
|
||||
|
|
|
@ -80,7 +80,6 @@ public class TestVisibilityLabelReplicationWithExpAsString extends TestVisibilit
|
|||
// setup configuration
|
||||
conf = HBaseConfiguration.create();
|
||||
conf.setBoolean(HConstants.DISTRIBUTED_LOG_REPLAY_KEY, false);
|
||||
conf.setBoolean("hbase.online.schema.update.enable", true);
|
||||
conf.setInt("hfile.format.version", 3);
|
||||
conf.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/1");
|
||||
conf.setInt("replication.source.size.capacity", 10240);
|
||||
|
|
|
@ -130,7 +130,6 @@ public class TestVisibilityLabelsReplication {
|
|||
// setup configuration
|
||||
conf = HBaseConfiguration.create();
|
||||
conf.setBoolean(HConstants.DISTRIBUTED_LOG_REPLAY_KEY, false);
|
||||
conf.setBoolean("hbase.online.schema.update.enable", true);
|
||||
conf.setInt("hfile.format.version", 3);
|
||||
conf.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/1");
|
||||
conf.setInt("replication.source.size.capacity", 10240);
|
||||
|
|
|
@ -67,7 +67,6 @@ public class TestVisibilityLabelsWithDefaultVisLabelService extends TestVisibili
|
|||
// setup configuration
|
||||
conf = TEST_UTIL.getConfiguration();
|
||||
conf.setBoolean(HConstants.DISTRIBUTED_LOG_REPLAY_KEY, false);
|
||||
conf.setBoolean("hbase.online.schema.update.enable", true);
|
||||
VisibilityTestUtil.enableVisiblityLabels(conf);
|
||||
conf.setClass(VisibilityUtils.VISIBILITY_LABEL_GENERATOR_CLASS, SimpleScanLabelGenerator.class,
|
||||
ScanLabelGenerator.class);
|
||||
|
|
|
@ -70,7 +70,6 @@ public class TestRestoreFlushSnapshotFromClient {
|
|||
}
|
||||
|
||||
protected static void setupConf(Configuration conf) {
|
||||
UTIL.getConfiguration().setBoolean("hbase.online.schema.update.enable", true);
|
||||
UTIL.getConfiguration().setInt("hbase.regionserver.msginterval", 100);
|
||||
UTIL.getConfiguration().setInt("hbase.client.pause", 250);
|
||||
UTIL.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 6);
|
||||
|
|
|
@ -22,19 +22,17 @@ module Shell
|
|||
class Alter < Command
|
||||
def help
|
||||
return <<-EOF
|
||||
Alter a table. If the "hbase.online.schema.update.enable" property is set to
|
||||
false, then the table must be disabled (see help 'disable'). If the
|
||||
"hbase.online.schema.update.enable" property is set to true, tables can be
|
||||
altered without disabling them first. Altering enabled tables has caused problems
|
||||
in the past, so use caution and test it before using in production.
|
||||
Alter a table. Tables can be altered without disabling them first.
|
||||
Altering enabled tables has caused problems
|
||||
in the past, so use caution and test it before using in production.
|
||||
|
||||
You can use the alter command to add,
|
||||
You can use the alter command to add,
|
||||
modify or delete column families or change table configuration options.
|
||||
Column families work in a similar way as the 'create' command. The column family
|
||||
specification can either be a name string, or a dictionary with the NAME attribute.
|
||||
Dictionaries are described in the output of the 'help' command, with no arguments.
|
||||
|
||||
For example, to change or add the 'f1' column family in table 't1' from
|
||||
For example, to change or add the 'f1' column family in table 't1' from
|
||||
current value to keep a maximum of 5 cell VERSIONS, do:
|
||||
|
||||
hbase> alter 't1', NAME => 'f1', VERSIONS => 5
|
||||
|
@ -48,7 +46,7 @@ To delete the 'f1' column family in table 'ns1:t1', use one of:
|
|||
hbase> alter 'ns1:t1', NAME => 'f1', METHOD => 'delete'
|
||||
hbase> alter 'ns1:t1', 'delete' => 'f1'
|
||||
|
||||
You can also change table-scope attributes like MAX_FILESIZE, READONLY,
|
||||
You can also change table-scope attributes like MAX_FILESIZE, READONLY,
|
||||
MEMSTORE_FLUSHSIZE, DURABILITY, etc. These can be put at the end;
|
||||
for example, to change the max size of a region to 128MB, do:
|
||||
|
||||
|
@ -85,7 +83,7 @@ You can also set REGION_REPLICATION:
|
|||
|
||||
There could be more than one alteration in one command:
|
||||
|
||||
hbase> alter 't1', { NAME => 'f1', VERSIONS => 3 },
|
||||
hbase> alter 't1', { NAME => 'f1', VERSIONS => 3 },
|
||||
{ MAX_FILESIZE => '134217728' }, { METHOD => 'delete', NAME => 'f2' },
|
||||
OWNER => 'johndoe', METADATA => { 'mykey' => 'myvalue' }
|
||||
EOF
|
||||
|
|
|
@ -37,7 +37,6 @@ public abstract class AbstractTestShell {
|
|||
@BeforeClass
|
||||
public static void setUpBeforeClass() throws Exception {
|
||||
// Start mini cluster
|
||||
TEST_UTIL.getConfiguration().setBoolean("hbase.online.schema.update.enable", true);
|
||||
TEST_UTIL.getConfiguration().setInt("hbase.regionserver.msginterval", 100);
|
||||
TEST_UTIL.getConfiguration().setInt("hbase.client.pause", 250);
|
||||
TEST_UTIL.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 6);
|
||||
|
|
|
@ -54,7 +54,6 @@ public class TestShellRSGroups {
|
|||
basePath = System.getProperty("basedir");
|
||||
|
||||
// Start mini cluster
|
||||
TEST_UTIL.getConfiguration().setBoolean("hbase.online.schema.update.enable", true);
|
||||
TEST_UTIL.getConfiguration().setInt("hbase.regionserver.msginterval", 100);
|
||||
TEST_UTIL.getConfiguration().setInt("hbase.client.pause", 250);
|
||||
TEST_UTIL.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 6);
|
||||
|
|
|
@ -1585,16 +1585,6 @@ Set to true to cause the hosting server (master or regionserver)
|
|||
`true`
|
||||
|
||||
|
||||
[[hbase.online.schema.update.enable]]
|
||||
*`hbase.online.schema.update.enable`*::
|
||||
+
|
||||
.Description
|
||||
Set true to enable online schema changes.
|
||||
+
|
||||
.Default
|
||||
`true`
|
||||
|
||||
|
||||
[[hbase.table.lock.enable]]
|
||||
*`hbase.table.lock.enable`*::
|
||||
+
|
||||
|
|
Loading…
Reference in New Issue