HBASE-11826 Split each tableOrRegionName admin methods into two targetted methods (Carter and Enis)
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/0cbe0522 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/0cbe0522 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/0cbe0522 Branch: refs/heads/branch-1 Commit: 0cbe0522eb3ccd721a1a9b76ad1d126a6368283e Parents: 9d9d206 Author: Enis Soztutar <e...@apache.org> Authored: Wed Sep 3 14:39:35 2014 -0700 Committer: Enis Soztutar <e...@apache.org> Committed: Wed Sep 3 14:58:48 2014 -0700 ---------------------------------------------------------------------- .../org/apache/hadoop/hbase/client/Admin.java | 127 ++-- .../apache/hadoop/hbase/client/HBaseAdmin.java | 670 +++++++++++-------- .../hadoop/hbase/IntegrationTestBase.java | 2 +- .../hadoop/hbase/IntegrationTestIngest.java | 13 +- .../IntegrationTestIngestWithEncryption.java | 12 +- .../hbase/IntegrationTestRegionReplicaPerf.java | 7 +- .../hbase/chaos/actions/AddColumnAction.java | 6 +- .../chaos/actions/ChangeBloomFilterAction.java | 8 +- .../chaos/actions/ChangeCompressionAction.java | 10 +- .../chaos/actions/ChangeEncodingAction.java | 6 +- .../chaos/actions/ChangeVersionsAction.java | 10 +- .../CompactRandomRegionOfTableAction.java | 12 +- .../hbase/chaos/actions/CompactTableAction.java | 17 +- .../actions/FlushRandomRegionOfTableAction.java | 10 +- .../hbase/chaos/actions/FlushTableAction.java | 10 +- ...MergeRandomAdjacentRegionsOfTableAction.java | 8 +- .../actions/MoveRandomRegionOfTableAction.java | 8 +- .../chaos/actions/MoveRegionsOfTableAction.java | 7 +- .../hbase/chaos/actions/RemoveColumnAction.java | 10 +- .../chaos/actions/SnapshotTableAction.java | 7 +- .../actions/SplitRandomRegionOfTableAction.java | 10 +- .../hbase/chaos/factories/MonkeyFactory.java | 5 +- .../mapreduce/IntegrationTestBulkLoad.java | 23 +- ...IntegrationTestTableSnapshotInputFormat.java | 10 +- .../hadoop/hbase/mttr/IntegrationTestMTTR.java | 3 +- .../test/IntegrationTestBigLinkedList.java | 4 +- .../test/IntegrationTestLoadAndVerify.java | 10 +- ...stTimeBoundedRequestsWithRegionReplicas.java | 5 +- ...tionTestWithCellVisibilityLoadAndVerify.java | 16 +- .../trace/IntegrationTestSendTraceRequests.java | 9 +- .../org/apache/hadoop/hbase/TestNamespace.java | 3 +- .../apache/hadoop/hbase/client/TestAdmin.java | 7 +- .../hadoop/hbase/client/TestFromClientSide.java | 2 +- .../hbase/client/TestReplicaWithCluster.java | 2 +- .../client/TestSnapshotCloneIndependence.java | 3 +- .../hbase/client/TestTableSnapshotScanner.java | 2 +- .../TestRegionObserverInterface.java | 17 +- .../TestRegionObserverScannerOpenHook.java | 15 +- .../hbase/io/encoding/TestPrefixTree.java | 2 +- .../TableSnapshotInputFormatTestBase.java | 3 +- .../hbase/master/TestAssignmentListener.java | 10 +- .../master/TestDistributedLogSplitting.java | 12 +- .../apache/hadoop/hbase/master/TestMaster.java | 2 +- .../hbase/master/TestTableLockManager.java | 9 +- .../hbase/migration/TestNamespaceUpgrade.java | 6 +- .../regionserver/TestEncryptionKeyRotation.java | 4 +- .../TestEncryptionRandomKeying.java | 2 +- .../TestEndToEndSplitTransaction.java | 7 +- .../TestRegionMergeTransactionOnCluster.java | 2 +- .../regionserver/TestRegionServerMetrics.java | 2 +- .../hadoop/hbase/regionserver/TestTags.java | 39 +- .../hbase/regionserver/wal/TestLogRolling.java | 21 +- .../hadoop/hbase/rest/TestTableResource.java | 7 +- .../security/access/TestTablePermissions.java | 7 +- .../TestVisibilityLabelsWithDeletes.java | 167 +++-- .../TestVisibilityWithCheckAuths.java | 15 +- .../apache/hadoop/hbase/util/TestHBaseFsck.java | 30 +- .../hbase/util/TestHBaseFsckEncryption.java | 2 +- 58 files changed, 797 insertions(+), 658 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/0cbe0522/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java index 2c9b5a3..0fe2ff3 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java @@ -482,102 +482,102 @@ public interface Admin extends Abortable, Closeable { List<HRegionInfo> getOnlineRegions(final ServerName sn) throws IOException; /** - * Flush a table or an individual region. Synchronous operation. + * Flush a table. Synchronous operation. * - * @param tableNameOrRegionName table or region to flush + * @param tableName table to flush * @throws IOException if a remote or network exception occurs * @throws InterruptedException */ - void flush(final String tableNameOrRegionName) throws IOException, InterruptedException; + void flush(final TableName tableName) throws IOException, InterruptedException; /** - * Flush a table or an individual region. Synchronous operation. + * Flush an individual region. Synchronous operation. * - * @param tableNameOrRegionName table or region to flush + * @param regionName region to flush * @throws IOException if a remote or network exception occurs * @throws InterruptedException */ - void flush(final byte[] tableNameOrRegionName) throws IOException, InterruptedException; + void flushRegion(final byte[] regionName) throws IOException, InterruptedException; /** - * Compact a table or an individual region. Asynchronous operation. + * Compact a table. Asynchronous operation. * - * @param tableNameOrRegionName table or region to compact + * @param tableName table to compact * @throws IOException if a remote or network exception occurs * @throws InterruptedException */ - void compact(final String tableNameOrRegionName) throws IOException, InterruptedException; + void compact(final TableName tableName) throws IOException, InterruptedException; /** - * Compact a table or an individual region. Asynchronous operation. + * Compact an individual region. Asynchronous operation. * - * @param tableNameOrRegionName table or region to compact + * @param regionName region to compact * @throws IOException if a remote or network exception occurs * @throws InterruptedException */ - void compact(final byte[] tableNameOrRegionName) throws IOException, InterruptedException; + void compactRegion(final byte[] regionName) throws IOException, InterruptedException; /** - * Compact a column family within a table or region. Asynchronous operation. + * Compact a column family within a table. Asynchronous operation. * - * @param tableOrRegionName table or region to compact - * @param columnFamily column family within a table or region + * @param tableName table to compact + * @param columnFamily column family within a table * @throws IOException if a remote or network exception occurs * @throws InterruptedException */ - void compact(String tableOrRegionName, String columnFamily) - throws IOException, InterruptedException; + void compact(final TableName tableName, final byte[] columnFamily) + throws IOException, InterruptedException; /** - * Compact a column family within a table or region. Asynchronous operation. + * Compact a column family within a region. Asynchronous operation. * - * @param tableNameOrRegionName table or region to compact - * @param columnFamily column family within a table or region + * @param regionName region to compact + * @param columnFamily column family within a region * @throws IOException if a remote or network exception occurs * @throws InterruptedException */ - void compact(final byte[] tableNameOrRegionName, final byte[] columnFamily) - throws IOException, InterruptedException; + void compactRegion(final byte[] regionName, final byte[] columnFamily) + throws IOException, InterruptedException; /** - * Major compact a table or an individual region. Asynchronous operation. + * Major compact a table. Asynchronous operation. * - * @param tableNameOrRegionName table or region to major compact + * @param tableName table to major compact * @throws IOException if a remote or network exception occurs * @throws InterruptedException */ - void majorCompact(final String tableNameOrRegionName) throws IOException, InterruptedException; + void majorCompact(TableName tableName) throws IOException, InterruptedException; /** * Major compact a table or an individual region. Asynchronous operation. * - * @param tableNameOrRegionName table or region to major compact + * @param regionName region to major compact * @throws IOException if a remote or network exception occurs * @throws InterruptedException */ - void majorCompact(final byte[] tableNameOrRegionName) throws IOException, InterruptedException; + void majorCompactRegion(final byte[] regionName) throws IOException, InterruptedException; /** - * Major compact a column family within a table or region. Asynchronous operation. + * Major compact a column family within a table. Asynchronous operation. * - * @param tableNameOrRegionName table or region to major compact - * @param columnFamily column family within a table or region + * @param tableName table to major compact + * @param columnFamily column family within a table * @throws IOException if a remote or network exception occurs * @throws InterruptedException */ - void majorCompact(final String tableNameOrRegionName, final String columnFamily) - throws IOException, InterruptedException; + void majorCompact(TableName tableName, final byte[] columnFamily) + throws IOException, InterruptedException; /** - * Major compact a column family within a table or region. Asynchronous operation. + * Major compact a column family within region. Asynchronous operation. * - * @param tableNameOrRegionName table or region to major compact - * @param columnFamily column family within a table or region + * @param regionName egion to major compact + * @param columnFamily column family within a region * @throws IOException if a remote or network exception occurs * @throws InterruptedException */ - void majorCompact(final byte[] tableNameOrRegionName, final byte[] columnFamily) - throws IOException, InterruptedException; + void majorCompactRegion(final byte[] regionName, final byte[] columnFamily) + throws IOException, InterruptedException; /** * Move the region <code>r</code> to <code>dest</code>. @@ -692,37 +692,44 @@ public interface Admin extends Abortable, Closeable { final boolean forcible) throws IOException; /** - * Split a table or an individual region. Asynchronous operation. + * Split a table. Asynchronous operation. * - * @param tableNameOrRegionName table or region to split + * @param tableName table to split * @throws IOException if a remote or network exception occurs * @throws InterruptedException */ - void split(final String tableNameOrRegionName) throws IOException, InterruptedException; + void split(final TableName tableName) throws IOException, InterruptedException; /** - * Split a table or an individual region. Implicitly finds an optimal split point. Asynchronous - * operation. + * Split an individual region. Asynchronous operation. * - * @param tableNameOrRegionName table to region to split + * @param regionName region to split * @throws IOException if a remote or network exception occurs * @throws InterruptedException */ - void split(final byte[] tableNameOrRegionName) throws IOException, InterruptedException; + void splitRegion(final byte[] regionName) throws IOException, InterruptedException; - void split(final String tableNameOrRegionName, final String splitPoint) - throws IOException, InterruptedException; + /** + * Split a table. Asynchronous operation. + * + * @param tableName table to split + * @param splitPoint the explicit position to split on + * @throws IOException if a remote or network exception occurs + * @throws InterruptedException interrupt exception occurred + */ + void split(final TableName tableName, final byte[] splitPoint) + throws IOException, InterruptedException; /** - * Split a table or an individual region. Asynchronous operation. + * Split an individual region. Asynchronous operation. * - * @param tableNameOrRegionName table to region to split + * @param regionName region to split * @param splitPoint the explicit position to split on * @throws IOException if a remote or network exception occurs * @throws InterruptedException interrupt exception occurred */ - void split(final byte[] tableNameOrRegionName, final byte[] splitPoint) - throws IOException, InterruptedException; + void splitRegion(final byte[] regionName, final byte[] splitPoint) + throws IOException, InterruptedException; /** * Modify an existing table, more IRB friendly version. Asynchronous operation. This means that @@ -880,28 +887,28 @@ public interface Admin extends Abortable, Closeable { String[] getMasterCoprocessors(); /** - * Get the current compaction state of a table or region. It could be in a major compaction, a - * minor compaction, both, or none. + * Get the current compaction state of a table. It could be in a major compaction, a minor + * compaction, both, or none. * - * @param tableNameOrRegionName table or region to major compact + * @param tableName table to examine * @return the current compaction state * @throws IOException if a remote or network exception occurs * @throws InterruptedException */ - AdminProtos.GetRegionInfoResponse.CompactionState getCompactionState( - final String tableNameOrRegionName) throws IOException, InterruptedException; + AdminProtos.GetRegionInfoResponse.CompactionState getCompactionState(final TableName tableName) + throws IOException, InterruptedException; /** - * Get the current compaction state of a table or region. It could be in a major compaction, a - * minor compaction, both, or none. + * Get the current compaction state of region. It could be in a major compaction, a minor + * compaction, both, or none. * - * @param tableNameOrRegionName table or region to major compact + * @param regionName region to examine * @return the current compaction state * @throws IOException if a remote or network exception occurs * @throws InterruptedException */ - AdminProtos.GetRegionInfoResponse.CompactionState getCompactionState( - final byte[] tableNameOrRegionName) throws IOException, InterruptedException; + AdminProtos.GetRegionInfoResponse.CompactionState getCompactionStateForRegion( + final byte[] regionName) throws IOException, InterruptedException; /** * Take a snapshot for the given table. If the table is enabled, a FLUSH-type snapshot will be http://git-wip-us.apache.org/repos/asf/hbase/blob/0cbe0522/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java index 4012c14..4d0669a 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java @@ -269,6 +269,7 @@ public class HBaseAdmin implements Admin { * @return True if table exists already. * @throws IOException */ + @Override public boolean tableExists(final TableName tableName) throws IOException { return MetaTableAccessor.tableExists(connection, tableName); } @@ -1466,47 +1467,56 @@ public class HBaseAdmin implements Admin { } /** - * Flush a table or an individual region. - * Synchronous operation. - * - * @param tableNameOrRegionName table or region to flush - * @throws IOException if a remote or network exception occurs - * @throws InterruptedException + * {@inheritDoc} */ @Override + public void flush(final TableName tableName) throws IOException, InterruptedException { + checkTableExists(tableName); + if (isTableDisabled(tableName)) { + LOG.info("Table is disabled: " + tableName.getNameAsString()); + return; + } + execProcedure("flush-table-proc", tableName.getNameAsString(), + new HashMap<String, String>()); + } + + /** + * {@inheritDoc} + */ + @Override + public void flushRegion(final byte[] regionName) throws IOException, InterruptedException { + Pair<HRegionInfo, ServerName> regionServerPair = getRegion(regionName); + if (regionServerPair == null) { + throw new IllegalArgumentException("Unknown regionname: " + Bytes.toStringBinary(regionName)); + } + if (regionServerPair.getSecond() == null) { + throw new NoServerForRegionException(Bytes.toStringBinary(regionName)); + } + flush(regionServerPair.getSecond(), regionServerPair.getFirst()); + } + + /** + * @deprecated Use {@link #flush(org.apache.hadoop.hbase.TableName)} or {@link #flushRegion + * (byte[])} instead. + */ + @Deprecated public void flush(final String tableNameOrRegionName) throws IOException, InterruptedException { flush(Bytes.toBytes(tableNameOrRegionName)); } /** - * Flush a table or an individual region. - * Synchronous operation. - * - * @param tableNameOrRegionName table or region to flush - * @throws IOException if a remote or network exception occurs - * @throws InterruptedException + * @deprecated Use {@link #flush(org.apache.hadoop.hbase.TableName)} or {@link #flushRegion + * (byte[])} instead. */ - @Override + @Deprecated public void flush(final byte[] tableNameOrRegionName) throws IOException, InterruptedException { - Pair<HRegionInfo, ServerName> regionServerPair - = getRegion(tableNameOrRegionName); - if (regionServerPair != null) { - if (regionServerPair.getSecond() == null) { - throw new NoServerForRegionException(Bytes.toStringBinary(tableNameOrRegionName)); - } else { - flush(regionServerPair.getSecond(), regionServerPair.getFirst()); - } - } else { - final TableName tableName = checkTableExists( - TableName.valueOf(tableNameOrRegionName)); - if (isTableDisabled(tableName)) { - LOG.info("Table is disabled: " + tableName.getNameAsString()); - return; - } - execProcedure("flush-table-proc", tableName.getNameAsString(), - new HashMap<String, String>()); + try { + flushRegion(tableNameOrRegionName); + } catch (IllegalArgumentException e) { + // Unknown region. Try table. + flush(TableName.valueOf(tableNameOrRegionName)); } } @@ -1523,164 +1533,205 @@ public class HBaseAdmin implements Admin { } /** - * Compact a table or an individual region. - * Asynchronous operation. - * - * @param tableNameOrRegionName table or region to compact - * @throws IOException if a remote or network exception occurs - * @throws InterruptedException + * {@inheritDoc} */ @Override + public void compact(final TableName tableName) + throws IOException, InterruptedException { + compact(tableName, null, false); + } + + /** + * {@inheritDoc} + */ + @Override + public void compactRegion(final byte[] regionName) + throws IOException, InterruptedException { + compactRegion(regionName, null, false); + } + + /** + * @deprecated Use {@link #compact(org.apache.hadoop.hbase.TableName)} or {@link #compactRegion + * (byte[])} instead. + */ + @Deprecated public void compact(final String tableNameOrRegionName) throws IOException, InterruptedException { compact(Bytes.toBytes(tableNameOrRegionName)); } /** - * Compact a table or an individual region. - * Asynchronous operation. - * - * @param tableNameOrRegionName table or region to compact - * @throws IOException if a remote or network exception occurs - * @throws InterruptedException + * @deprecated Use {@link #compact(org.apache.hadoop.hbase.TableName)} or {@link #compactRegion + * (byte[])} instead. */ - @Override + @Deprecated public void compact(final byte[] tableNameOrRegionName) throws IOException, InterruptedException { - compact(tableNameOrRegionName, null, false); + try { + compactRegion(tableNameOrRegionName, null, false); + } catch (IllegalArgumentException e) { + compact(TableName.valueOf(tableNameOrRegionName), null, false); + } } /** - * Compact a column family within a table or region. - * Asynchronous operation. - * - * @param tableOrRegionName table or region to compact - * @param columnFamily column family within a table or region - * @throws IOException if a remote or network exception occurs - * @throws InterruptedException + * {@inheritDoc} */ @Override + public void compact(final TableName tableName, final byte[] columnFamily) + throws IOException, InterruptedException { + compact(tableName, columnFamily, false); + } + + /** + * {@inheritDoc} + */ + @Override + public void compactRegion(final byte[] regionName, final byte[] columnFamily) + throws IOException, InterruptedException { + compactRegion(regionName, columnFamily, false); + } + + /** + * @deprecated Use {@link #compact(org.apache.hadoop.hbase.TableName)} or {@link #compactRegion + * (byte[], byte[])} instead. + */ + @Deprecated public void compact(String tableOrRegionName, String columnFamily) throws IOException, InterruptedException { compact(Bytes.toBytes(tableOrRegionName), Bytes.toBytes(columnFamily)); } /** - * Compact a column family within a table or region. - * Asynchronous operation. - * - * @param tableNameOrRegionName table or region to compact - * @param columnFamily column family within a table or region - * @throws IOException if a remote or network exception occurs - * @throws InterruptedException + * @deprecated Use {@link #compact(org.apache.hadoop.hbase.TableName)} or {@link #compactRegion + * (byte[], byte[])} instead. */ - @Override + @Deprecated public void compact(final byte[] tableNameOrRegionName, final byte[] columnFamily) throws IOException, InterruptedException { - compact(tableNameOrRegionName, columnFamily, false); + try { + compactRegion(tableNameOrRegionName, columnFamily, false); + } catch (IllegalArgumentException e) { + // Bad region, try table + compact(TableName.valueOf(tableNameOrRegionName), columnFamily, false); + } } /** - * Major compact a table or an individual region. - * Asynchronous operation. - * - * @param tableNameOrRegionName table or region to major compact - * @throws IOException if a remote or network exception occurs - * @throws InterruptedException + * {@inheritDoc} + */ + @Override + public void majorCompact(final TableName tableName) + throws IOException, InterruptedException { + compact(tableName, null, true); + } + + /** + * {@inheritDoc} */ @Override + public void majorCompactRegion(final byte[] regionName) + throws IOException, InterruptedException { + compactRegion(regionName, null, true); + } + + /** + * @deprecated Use {@link #majorCompact(org.apache.hadoop.hbase.TableName)} or {@link + * #majorCompactRegion(byte[])} instead. + */ + @Deprecated public void majorCompact(final String tableNameOrRegionName) throws IOException, InterruptedException { majorCompact(Bytes.toBytes(tableNameOrRegionName)); } /** - * Major compact a table or an individual region. - * Asynchronous operation. - * - * @param tableNameOrRegionName table or region to major compact - * @throws IOException if a remote or network exception occurs - * @throws InterruptedException + * @deprecated Use {@link #majorCompact(org.apache.hadoop.hbase.TableName)} or {@link + * #majorCompactRegion(byte[])} instead. */ - @Override + @Deprecated public void majorCompact(final byte[] tableNameOrRegionName) throws IOException, InterruptedException { - compact(tableNameOrRegionName, null, true); + try { + compactRegion(tableNameOrRegionName, null, true); + } catch (IllegalArgumentException e) { + // Invalid region, try table + compact(TableName.valueOf(tableNameOrRegionName), null, true); + } } /** - * Major compact a column family within a table or region. - * Asynchronous operation. - * - * @param tableNameOrRegionName table or region to major compact - * @param columnFamily column family within a table or region - * @throws IOException if a remote or network exception occurs - * @throws InterruptedException + * {@inheritDoc} */ @Override - public void majorCompact(final String tableNameOrRegionName, - final String columnFamily) throws IOException, InterruptedException { - majorCompact(Bytes.toBytes(tableNameOrRegionName), - Bytes.toBytes(columnFamily)); + public void majorCompact(final TableName tableName, final byte[] columnFamily) + throws IOException, InterruptedException { + compact(tableName, columnFamily, true); } /** - * Major compact a column family within a table or region. - * Asynchronous operation. - * - * @param tableNameOrRegionName table or region to major compact - * @param columnFamily column family within a table or region - * @throws IOException if a remote or network exception occurs - * @throws InterruptedException + * {@inheritDoc} */ @Override - public void majorCompact(final byte[] tableNameOrRegionName, - final byte[] columnFamily) throws IOException, InterruptedException { - compact(tableNameOrRegionName, columnFamily, true); + public void majorCompactRegion(final byte[] regionName, final byte[] columnFamily) + throws IOException, InterruptedException { + compactRegion(regionName, columnFamily, true); } /** - * Compact a table or an individual region. + * @deprecated Use {@link #majorCompact(org.apache.hadoop.hbase.TableName, + * byte[])} or {@link #majorCompactRegion(byte[], byte[])} instead. + */ + @Deprecated + public void majorCompact(final String tableNameOrRegionName, final String columnFamily) + throws IOException, InterruptedException { + majorCompact(Bytes.toBytes(tableNameOrRegionName), Bytes.toBytes(columnFamily)); + } + + /** + * @deprecated Use {@link #majorCompact(org.apache.hadoop.hbase.TableName, + * byte[])} or {@link #majorCompactRegion(byte[], byte[])} instead. + */ + @Deprecated + public void majorCompact(final byte[] tableNameOrRegionName, final byte[] columnFamily) + throws IOException, InterruptedException { + try { + compactRegion(tableNameOrRegionName, columnFamily, true); + } catch (IllegalArgumentException e) { + // Invalid region, try table + compact(TableName.valueOf(tableNameOrRegionName), columnFamily, true); + } + } + + /** + * Compact a table. * Asynchronous operation. * - * @param tableNameOrRegionName table or region to compact + * @param tableName table or region to compact * @param columnFamily column family within a table or region * @param major True if we are to do a major compaction. * @throws IOException if a remote or network exception occurs * @throws InterruptedException */ - private void compact(final byte[] tableNameOrRegionName, - final byte[] columnFamily,final boolean major) + private void compact(final TableName tableName, final byte[] columnFamily,final boolean major) throws IOException, InterruptedException { ZooKeeperWatcher zookeeper = null; try { - Pair<HRegionInfo, ServerName> regionServerPair - = getRegion(tableNameOrRegionName); - if (regionServerPair != null) { - if (regionServerPair.getSecond() == null) { - throw new NoServerForRegionException(Bytes.toStringBinary(tableNameOrRegionName)); - } else { - compact(regionServerPair.getSecond(), regionServerPair.getFirst(), major, columnFamily); - } - } else { - final TableName tableName = - checkTableExists(TableName.valueOf(tableNameOrRegionName)); - zookeeper = new ZooKeeperWatcher(conf, ZK_IDENTIFIER_PREFIX + connection.toString(), - new ThrowableAbortable()); - List<Pair<HRegionInfo, ServerName>> pairs = - MetaTableAccessor.getTableRegionsAndLocations(zookeeper, connection, - tableName); - for (Pair<HRegionInfo, ServerName> pair: pairs) { - if (pair.getFirst().isOffline()) continue; - if (pair.getSecond() == null) continue; - try { - compact(pair.getSecond(), pair.getFirst(), major, columnFamily); - } catch (NotServingRegionException e) { - if (LOG.isDebugEnabled()) { - LOG.debug("Trying to" + (major ? " major" : "") + " compact " + - pair.getFirst() + ": " + - StringUtils.stringifyException(e)); - } + checkTableExists(tableName); + zookeeper = new ZooKeeperWatcher(conf, ZK_IDENTIFIER_PREFIX + connection.toString(), + new ThrowableAbortable()); + List<Pair<HRegionInfo, ServerName>> pairs = + MetaTableAccessor.getTableRegionsAndLocations(zookeeper, connection, tableName); + for (Pair<HRegionInfo, ServerName> pair: pairs) { + if (pair.getFirst().isOffline()) continue; + if (pair.getSecond() == null) continue; + try { + compact(pair.getSecond(), pair.getFirst(), major, columnFamily); + } catch (NotServingRegionException e) { + if (LOG.isDebugEnabled()) { + LOG.debug("Trying to" + (major ? " major" : "") + " compact " + + pair.getFirst() + ": " + + StringUtils.stringifyException(e)); } } } @@ -1691,6 +1742,28 @@ public class HBaseAdmin implements Admin { } } + /** + * Compact an individual region. + * Asynchronous operation. + * + * @param regionName region to compact + * @param columnFamily column family within a table or region + * @param major True if we are to do a major compaction. + * @throws IOException if a remote or network exception occurs + * @throws InterruptedException + */ + private void compactRegion(final byte[] regionName, final byte[] columnFamily,final boolean major) + throws IOException, InterruptedException { + Pair<HRegionInfo, ServerName> regionServerPair = getRegion(regionName); + if (regionServerPair == null) { + throw new IllegalArgumentException("Invalid region: " + Bytes.toStringBinary(regionName)); + } + if (regionServerPair.getSecond() == null) { + throw new NoServerForRegionException(Bytes.toStringBinary(regionName)); + } + compact(regionServerPair.getSecond(), regionServerPair.getFirst(), major, columnFamily); + } + private void compact(final ServerName sn, final HRegionInfo hri, final boolean major, final byte [] family) throws IOException { @@ -1726,7 +1799,7 @@ public class HBaseAdmin implements Admin { try { MoveRegionRequest request = RequestConverter.buildMoveRegionRequest(encodedRegionName, destServerName); - stub.moveRegion(null,request); + stub.moveRegion(null, request); } catch (ServiceException se) { IOException ioe = ProtobufUtil.getRemoteException(se); if (ioe instanceof HBaseIOException) { @@ -1785,7 +1858,7 @@ public class HBaseAdmin implements Admin { public Void call(int callTimeout) throws ServiceException { UnassignRegionRequest request = RequestConverter.buildUnassignRegionRequest(toBeUnassigned, force); - master.unassignRegion(null,request); + master.unassignRegion(null, request); return null; } }); @@ -1858,7 +1931,7 @@ public class HBaseAdmin implements Admin { throws MasterNotRunningException, ZooKeeperConnectionException, ServiceException { MasterKeepAliveConnection stub = connection.getKeepAliveMasterService(); try { - return stub.balance(null,RequestConverter.buildBalanceRequest()).getBalancerRan(); + return stub.balance(null, RequestConverter.buildBalanceRequest()).getBalancerRan(); } finally { stub.close(); } @@ -1877,7 +1950,7 @@ public class HBaseAdmin implements Admin { MasterKeepAliveConnection stub = connection.getKeepAliveMasterService(); try { return stub.enableCatalogJanitor(null, - RequestConverter.buildEnableCatalogJanitorRequest(enable)).getPrevValue(); + RequestConverter.buildEnableCatalogJanitorRequest(enable)).getPrevValue(); } finally { stub.close(); } @@ -1894,7 +1967,7 @@ public class HBaseAdmin implements Admin { MasterKeepAliveConnection stub = connection.getKeepAliveMasterService(); try { return stub.runCatalogScan(null, - RequestConverter.buildCatalogScanRequest()).getScanResult(); + RequestConverter.buildCatalogScanRequest()).getScanResult(); } finally { stub.close(); } @@ -1910,7 +1983,7 @@ public class HBaseAdmin implements Admin { MasterKeepAliveConnection stub = connection.getKeepAliveMasterService(); try { return stub.isCatalogJanitorEnabled(null, - RequestConverter.buildIsCatalogJanitorEnabledRequest()).getValue(); + RequestConverter.buildIsCatalogJanitorEnabledRequest()).getValue(); } finally { stub.close(); } @@ -1953,85 +2026,112 @@ public class HBaseAdmin implements Admin { } /** - * Split a table or an individual region. - * Asynchronous operation. - * - * @param tableNameOrRegionName table or region to split - * @throws IOException if a remote or network exception occurs - * @throws InterruptedException + * {@inheritDoc} */ @Override + public void split(final TableName tableName) + throws IOException, InterruptedException { + split(tableName, null); + } + + /** + * {@inheritDoc} + */ + @Override + public void splitRegion(final byte[] regionName) + throws IOException, InterruptedException { + splitRegion(regionName, null); + } + + /** + * @deprecated Use {@link #split(org.apache.hadoop.hbase.TableName)} or {@link #splitRegion + * (byte[])} instead. + */ + @Deprecated public void split(final String tableNameOrRegionName) throws IOException, InterruptedException { split(Bytes.toBytes(tableNameOrRegionName)); } /** - * Split a table or an individual region. Implicitly finds an optimal split - * point. Asynchronous operation. - * - * @param tableNameOrRegionName table to region to split - * @throws IOException if a remote or network exception occurs - * @throws InterruptedException + * @deprecated Use {@link #split(org.apache.hadoop.hbase.TableName)} or {@link #splitRegion + * (byte[])} instead. */ - @Override + @Deprecated public void split(final byte[] tableNameOrRegionName) throws IOException, InterruptedException { split(tableNameOrRegionName, null); } + /** + * {@inheritDoc} + */ @Override + public void split(final TableName tableName, final byte [] splitPoint) + throws IOException, InterruptedException { + ZooKeeperWatcher zookeeper = null; + try { + checkTableExists(tableName); + zookeeper = new ZooKeeperWatcher(conf, ZK_IDENTIFIER_PREFIX + connection.toString(), + new ThrowableAbortable()); + List<Pair<HRegionInfo, ServerName>> pairs = + MetaTableAccessor.getTableRegionsAndLocations(zookeeper, connection, tableName); + for (Pair<HRegionInfo, ServerName> pair: pairs) { + // May not be a server for a particular row + if (pair.getSecond() == null) continue; + HRegionInfo r = pair.getFirst(); + // check for parents + if (r.isSplitParent()) continue; + // if a split point given, only split that particular region + if (splitPoint != null && !r.containsRow(splitPoint)) continue; + // call out to region server to do split now + split(pair.getSecond(), pair.getFirst(), splitPoint); + } + } finally { + if (zookeeper != null) { + zookeeper.close(); + } + } + } + + /** + * {@inheritDoc} + */ + @Override + public void splitRegion(final byte[] regionName, final byte [] splitPoint) + throws IOException, InterruptedException { + Pair<HRegionInfo, ServerName> regionServerPair = getRegion(regionName); + if (regionServerPair == null) { + throw new IllegalArgumentException("Invalid region: " + Bytes.toStringBinary(regionName)); + } + if (regionServerPair.getSecond() == null) { + throw new NoServerForRegionException(Bytes.toStringBinary(regionName)); + } + split(regionServerPair.getSecond(), regionServerPair.getFirst(), splitPoint); + } + + /** + * @deprecated Use {@link #split(org.apache.hadoop.hbase.TableName, + * byte[])} or {@link #splitRegion(byte[], byte[])} instead. + */ + @Deprecated public void split(final String tableNameOrRegionName, final String splitPoint) throws IOException, InterruptedException { split(Bytes.toBytes(tableNameOrRegionName), Bytes.toBytes(splitPoint)); } /** - * Split a table or an individual region. - * Asynchronous operation. - * - * @param tableNameOrRegionName table to region to split - * @param splitPoint the explicit position to split on - * @throws IOException if a remote or network exception occurs - * @throws InterruptedException interrupt exception occurred + * @deprecated Use {@link #split(org.apache.hadoop.hbase.TableName, + * byte[])} or {@link #splitRegion(byte[], byte[])} instead. */ - @Override + @Deprecated public void split(final byte[] tableNameOrRegionName, final byte [] splitPoint) throws IOException, InterruptedException { - ZooKeeperWatcher zookeeper = null; try { - Pair<HRegionInfo, ServerName> regionServerPair - = getRegion(tableNameOrRegionName); - if (regionServerPair != null) { - if (regionServerPair.getSecond() == null) { - throw new NoServerForRegionException(Bytes.toStringBinary(tableNameOrRegionName)); - } else { - split(regionServerPair.getSecond(), regionServerPair.getFirst(), splitPoint); - } - } else { - final TableName tableName = - checkTableExists(TableName.valueOf(tableNameOrRegionName)); - zookeeper = new ZooKeeperWatcher(conf, ZK_IDENTIFIER_PREFIX + connection.toString(), - new ThrowableAbortable()); - List<Pair<HRegionInfo, ServerName>> pairs = - MetaTableAccessor.getTableRegionsAndLocations(zookeeper, connection, - tableName); - for (Pair<HRegionInfo, ServerName> pair: pairs) { - // May not be a server for a particular row - if (pair.getSecond() == null) continue; - HRegionInfo r = pair.getFirst(); - // check for parents - if (r.isSplitParent()) continue; - // if a split point given, only split that particular region - if (splitPoint != null && !r.containsRow(splitPoint)) continue; - // call out to region server to do split now - split(pair.getSecond(), pair.getFirst(), splitPoint); - } - } - } finally { - if (zookeeper != null) { - zookeeper.close(); - } + splitRegion(tableNameOrRegionName, splitPoint); + } catch (IllegalArgumentException e) { + // Bad region, try table + split(TableName.valueOf(tableNameOrRegionName), splitPoint); } } @@ -2083,24 +2183,24 @@ public class HBaseAdmin implements Admin { } /** - * @param tableNameOrRegionName Name of a table or name of a region. - * @return a pair of HRegionInfo and ServerName if <code>tableNameOrRegionName</code> is + * @param regionName Name of a region. + * @return a pair of HRegionInfo and ServerName if <code>regionName</code> is * a verified region name (we call {@link * MetaTableAccessor#getRegion(HConnection, byte[])} * else null. - * Throw an exception if <code>tableNameOrRegionName</code> is null. + * Throw IllegalArgumentException if <code>regionName</code> is null. * @throws IOException */ - Pair<HRegionInfo, ServerName> getRegion(final byte[] tableNameOrRegionName) throws IOException { - if (tableNameOrRegionName == null) { + Pair<HRegionInfo, ServerName> getRegion(final byte[] regionName) throws IOException { + if (regionName == null) { throw new IllegalArgumentException("Pass a table name or region name"); } Pair<HRegionInfo, ServerName> pair = - MetaTableAccessor.getRegion(connection, tableNameOrRegionName); + MetaTableAccessor.getRegion(connection, regionName); if (pair == null) { final AtomicReference<Pair<HRegionInfo, ServerName>> result = new AtomicReference<Pair<HRegionInfo, ServerName>>(null); - final String encodedName = Bytes.toString(tableNameOrRegionName); + final String encodedName = Bytes.toString(regionName); MetaScannerVisitor visitor = new MetaScannerVisitorBase() { @Override public boolean processRow(Result data) throws IOException { @@ -2187,7 +2287,7 @@ public class HBaseAdmin implements Admin { executeCallable(new MasterCallable<Void>(getConnection()) { @Override public Void call(int callTimeout) throws ServiceException { - master.stopMaster(null,StopMasterRequest.newBuilder().build()); + master.stopMaster(null, StopMasterRequest.newBuilder().build()); return null; } }); @@ -2226,7 +2326,7 @@ public class HBaseAdmin implements Admin { @Override public ClusterStatus call(int callTimeout) throws ServiceException { GetClusterStatusRequest req = RequestConverter.buildGetClusterStatusRequest(); - return ClusterStatus.convert(master.getClusterStatus(null,req).getClusterStatus()); + return ClusterStatus.convert(master.getClusterStatus(null, req).getClusterStatus()); } }); } @@ -2257,8 +2357,9 @@ public class HBaseAdmin implements Admin { public Void call(int callTimeout) throws Exception { master.createNamespace(null, CreateNamespaceRequest.newBuilder() - .setNamespaceDescriptor(ProtobufUtil - .toProtoNamespaceDescriptor(descriptor)).build()); + .setNamespaceDescriptor(ProtobufUtil + .toProtoNamespaceDescriptor(descriptor)).build() + ); return null; } }); @@ -2517,8 +2618,8 @@ public class HBaseAdmin implements Admin { * @throws IOException if a remote or network exception occurs * @throws FailedLogCloseException */ - @Override -public synchronized byte[][] rollHLogWriter(String serverName) + @Override + public synchronized byte[][] rollHLogWriter(String serverName) throws IOException, FailedLogCloseException { ServerName sn = ServerName.valueOf(serverName); AdminService.BlockingInterface admin = this.connection.getAdmin(sn); @@ -2548,96 +2649,60 @@ public synchronized byte[][] rollHLogWriter(String serverName) } /** - * Get the current compaction state of a table or region. - * It could be in a major compaction, a minor compaction, both, or none. - * - * @param tableNameOrRegionName table or region to major compact - * @throws IOException if a remote or network exception occurs - * @throws InterruptedException - * @return the current compaction state - */ - @Override - public CompactionState getCompactionState(final String tableNameOrRegionName) - throws IOException, InterruptedException { - return getCompactionState(Bytes.toBytes(tableNameOrRegionName)); - } - - /** - * Get the current compaction state of a table or region. - * It could be in a major compaction, a minor compaction, both, or none. - * - * @param tableNameOrRegionName table or region to major compact - * @throws IOException if a remote or network exception occurs - * @throws InterruptedException - * @return the current compaction state + * {@inheritDoc} */ @Override - public CompactionState getCompactionState(final byte[] tableNameOrRegionName) - throws IOException, InterruptedException { + public CompactionState getCompactionState(final TableName tableName) + throws IOException, InterruptedException { CompactionState state = CompactionState.NONE; ZooKeeperWatcher zookeeper = new ZooKeeperWatcher(conf, ZK_IDENTIFIER_PREFIX + connection.toString(), new ThrowableAbortable()); try { - Pair<HRegionInfo, ServerName> regionServerPair = getRegion(tableNameOrRegionName); - if (regionServerPair != null) { - if (regionServerPair.getSecond() == null) { - throw new NoServerForRegionException(Bytes.toStringBinary(tableNameOrRegionName)); - } else { - ServerName sn = regionServerPair.getSecond(); + checkTableExists(tableName); + List<Pair<HRegionInfo, ServerName>> pairs = + MetaTableAccessor.getTableRegionsAndLocations(zookeeper, connection, tableName); + for (Pair<HRegionInfo, ServerName> pair: pairs) { + if (pair.getFirst().isOffline()) continue; + if (pair.getSecond() == null) continue; + try { + ServerName sn = pair.getSecond(); AdminService.BlockingInterface admin = this.connection.getAdmin(sn); GetRegionInfoRequest request = RequestConverter.buildGetRegionInfoRequest( - regionServerPair.getFirst().getRegionName(), true); + pair.getFirst().getRegionName(), true); GetRegionInfoResponse response = admin.getRegionInfo(null, request); - return response.getCompactionState(); - } - } else { - final TableName tableName = - checkTableExists(TableName.valueOf(tableNameOrRegionName)); - List<Pair<HRegionInfo, ServerName>> pairs = - MetaTableAccessor.getTableRegionsAndLocations(zookeeper, connection, tableName); - for (Pair<HRegionInfo, ServerName> pair: pairs) { - if (pair.getFirst().isOffline()) continue; - if (pair.getSecond() == null) continue; - try { - ServerName sn = pair.getSecond(); - AdminService.BlockingInterface admin = this.connection.getAdmin(sn); - GetRegionInfoRequest request = RequestConverter.buildGetRegionInfoRequest( - pair.getFirst().getRegionName(), true); - GetRegionInfoResponse response = admin.getRegionInfo(null, request); - switch (response.getCompactionState()) { - case MAJOR_AND_MINOR: + switch (response.getCompactionState()) { + case MAJOR_AND_MINOR: + return CompactionState.MAJOR_AND_MINOR; + case MAJOR: + if (state == CompactionState.MINOR) { return CompactionState.MAJOR_AND_MINOR; - case MAJOR: - if (state == CompactionState.MINOR) { - return CompactionState.MAJOR_AND_MINOR; - } - state = CompactionState.MAJOR; - break; - case MINOR: - if (state == CompactionState.MAJOR) { - return CompactionState.MAJOR_AND_MINOR; - } - state = CompactionState.MINOR; - break; - case NONE: - default: // nothing, continue } - } catch (NotServingRegionException e) { - if (LOG.isDebugEnabled()) { - LOG.debug("Trying to get compaction state of " + - pair.getFirst() + ": " + - StringUtils.stringifyException(e)); + state = CompactionState.MAJOR; + break; + case MINOR: + if (state == CompactionState.MAJOR) { + return CompactionState.MAJOR_AND_MINOR; } - } catch (RemoteException e) { - if (e.getMessage().indexOf(NotServingRegionException.class.getName()) >= 0) { - if (LOG.isDebugEnabled()) { - LOG.debug("Trying to get compaction state of " + pair.getFirst() + ": " - + StringUtils.stringifyException(e)); - } - } else { - throw e; + state = CompactionState.MINOR; + break; + case NONE: + default: // nothing, continue + } + } catch (NotServingRegionException e) { + if (LOG.isDebugEnabled()) { + LOG.debug("Trying to get compaction state of " + + pair.getFirst() + ": " + + StringUtils.stringifyException(e)); + } + } catch (RemoteException e) { + if (e.getMessage().indexOf(NotServingRegionException.class.getName()) >= 0) { + if (LOG.isDebugEnabled()) { + LOG.debug("Trying to get compaction state of " + pair.getFirst() + ": " + + StringUtils.stringifyException(e)); } + } else { + throw e; } } } @@ -2650,6 +2715,56 @@ public synchronized byte[][] rollHLogWriter(String serverName) } /** + * {@inheritDoc} + */ + @Override + public CompactionState getCompactionStateForRegion(final byte[] regionName) + throws IOException, InterruptedException { + try { + Pair<HRegionInfo, ServerName> regionServerPair = getRegion(regionName); + if (regionServerPair == null) { + throw new IllegalArgumentException("Invalid region: " + Bytes.toStringBinary(regionName)); + } + if (regionServerPair.getSecond() == null) { + throw new NoServerForRegionException(Bytes.toStringBinary(regionName)); + } + ServerName sn = regionServerPair.getSecond(); + AdminService.BlockingInterface admin = this.connection.getAdmin(sn); + GetRegionInfoRequest request = RequestConverter.buildGetRegionInfoRequest( + regionServerPair.getFirst().getRegionName(), true); + GetRegionInfoResponse response = admin.getRegionInfo(null, request); + return response.getCompactionState(); + } catch (ServiceException se) { + throw ProtobufUtil.getRemoteException(se); + } + } + + /** + * @deprecated Use {@link #getCompactionState(org.apache.hadoop.hbase.TableName)} or {@link + * #getCompactionStateForRegion(byte[])} instead. + */ + @Deprecated + public CompactionState getCompactionState(final String tableNameOrRegionName) + throws IOException, InterruptedException { + return getCompactionState(Bytes.toBytes(tableNameOrRegionName)); + } + + /** + * @deprecated Use {@link #getCompactionState(org.apache.hadoop.hbase.TableName)} or {@link + * #getCompactionStateForRegion(byte[])} instead. + */ + @Deprecated + public CompactionState getCompactionState(final byte[] tableNameOrRegionName) + throws IOException, InterruptedException { + try { + return getCompactionStateForRegion(tableNameOrRegionName); + } catch (IllegalArgumentException e) { + // Invalid region, try table + return getCompactionState(TableName.valueOf(tableNameOrRegionName)); + } + } + + /** * Take a snapshot for the given table. If the table is enabled, a FLUSH-type snapshot will be * taken. If the table is disabled, an offline snapshot is taken. * <p> @@ -2726,7 +2841,7 @@ public synchronized byte[][] rollHLogWriter(String serverName) final byte[] tableName) throws IOException, SnapshotCreationException, IllegalArgumentException { snapshot(Bytes.toString(snapshotName), TableName.valueOf(tableName), - SnapshotDescription.Type.FLUSH); + SnapshotDescription.Type.FLUSH); } /** @@ -3398,7 +3513,8 @@ public synchronized byte[][] rollHLogWriter(String serverName) public Void call(int callTimeout) throws ServiceException { master.deleteSnapshot(null, DeleteSnapshotRequest.newBuilder(). - setSnapshot(SnapshotDescription.newBuilder().setName(snapshotName).build()).build()); + setSnapshot(SnapshotDescription.newBuilder().setName(snapshotName).build()).build() + ); return null; } }); http://git-wip-us.apache.org/repos/asf/hbase/blob/0cbe0522/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestBase.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestBase.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestBase.java index 85bc5db..085c252 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestBase.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestBase.java @@ -189,7 +189,7 @@ public abstract class IntegrationTestBase extends AbstractHBaseTool { public abstract int runTestFromCommandLine() throws Exception; - public abstract String getTablename(); + public abstract TableName getTablename(); protected abstract Set<String> getColumnFamilies(); } http://git-wip-us.apache.org/repos/asf/hbase/blob/0cbe0522/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestIngest.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestIngest.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestIngest.java index 0994b8f..7ac0d32 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestIngest.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestIngest.java @@ -115,9 +115,10 @@ public class IntegrationTestIngest extends IntegrationTestBase { } @Override - public String getTablename() { + public TableName getTablename() { String clazz = this.getClass().getSimpleName(); - return conf.get(String.format("%s.%s", clazz, LoadTestTool.OPT_TABLE_NAME), clazz); + return TableName.valueOf( + conf.get(String.format("%s.%s", clazz, LoadTestTool.OPT_TABLE_NAME), clazz)); } @Override @@ -126,8 +127,8 @@ public class IntegrationTestIngest extends IntegrationTestBase { } private void deleteTableIfNecessary() throws IOException { - if (util.getHBaseAdmin().tableExists(TableName.valueOf(getTablename()))) { - util.deleteTable(Bytes.toBytes(getTablename())); + if (util.getHBaseAdmin().tableExists(getTablename())) { + util.deleteTable(getTablename()); } } @@ -178,7 +179,7 @@ public class IntegrationTestIngest extends IntegrationTestBase { protected String[] getArgsForLoadTestToolInitTable() { List<String> args = new ArrayList<String>(); args.add("-tn"); - args.add(getTablename()); + args.add(getTablename().getNameAsString()); // pass all remaining args from conf with keys <test class name>.<load test tool arg> String clazz = this.getClass().getSimpleName(); for (String arg : LOAD_TEST_TOOL_INIT_ARGS) { @@ -196,7 +197,7 @@ public class IntegrationTestIngest extends IntegrationTestBase { long numKeys) { List<String> args = new ArrayList<String>(); args.add("-tn"); - args.add(getTablename()); + args.add(getTablename().getNameAsString()); args.add(mode); args.add(modeSpecificArg); args.add("-start_key"); http://git-wip-us.apache.org/repos/asf/hbase/blob/0cbe0522/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestIngestWithEncryption.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestIngestWithEncryption.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestIngestWithEncryption.java index 72c5689..f4246a2 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestIngestWithEncryption.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestIngestWithEncryption.java @@ -22,7 +22,6 @@ import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.Waiter.Predicate; import org.apache.hadoop.hbase.client.Admin; -import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.io.crypto.KeyProviderForTesting; import org.apache.hadoop.hbase.io.hfile.HFile; import org.apache.hadoop.hbase.io.hfile.HFileReaderV3; @@ -30,7 +29,6 @@ import org.apache.hadoop.hbase.io.hfile.HFileWriterV3; import org.apache.hadoop.hbase.regionserver.wal.HLog; import org.apache.hadoop.hbase.regionserver.wal.SecureProtobufLogReader; import org.apache.hadoop.hbase.regionserver.wal.SecureProtobufLogWriter; -import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.util.ToolRunner; import org.apache.log4j.Level; import org.apache.log4j.Logger; @@ -81,18 +79,18 @@ public class IntegrationTestIngestWithEncryption extends IntegrationTestIngest { // encryption features enabled. final Admin admin = util.getHBaseAdmin(); HTableDescriptor tableDescriptor = - new HTableDescriptor(admin.getTableDescriptor(TableName.valueOf(getTablename()))); + new HTableDescriptor(admin.getTableDescriptor(getTablename())); for (HColumnDescriptor columnDescriptor: tableDescriptor.getColumnFamilies()) { columnDescriptor.setEncryptionType("AES"); LOG.info("Updating CF schema for " + getTablename() + "." + columnDescriptor.getNameAsString()); - admin.disableTable(TableName.valueOf(getTablename())); - admin.modifyColumn(TableName.valueOf(getTablename()), columnDescriptor); - admin.enableTable(TableName.valueOf(getTablename())); + admin.disableTable(getTablename()); + admin.modifyColumn(getTablename(), columnDescriptor); + admin.enableTable(getTablename()); util.waitFor(30000, 1000, true, new Predicate<IOException>() { @Override public boolean evaluate() throws IOException { - return admin.isTableAvailable(TableName.valueOf(getTablename())); + return admin.isTableAvailable(getTablename()); } }); } http://git-wip-us.apache.org/repos/asf/hbase/blob/0cbe0522/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.java index 999ed51..160dc66 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.java @@ -30,7 +30,6 @@ import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey; import org.apache.hadoop.hbase.chaos.policies.PeriodicRandomActionPolicy; import org.apache.hadoop.hbase.chaos.policies.Policy; import org.apache.hadoop.hbase.client.Admin; -import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.ipc.RpcClient; import org.apache.hadoop.hbase.regionserver.DisabledRegionSplitPolicy; import org.apache.hadoop.mapreduce.Counters; @@ -166,7 +165,7 @@ public class IntegrationTestRegionReplicaPerf extends IntegrationTestBase { public void setUpMonkey() throws Exception { Policy p = new PeriodicRandomActionPolicy(sleepTime, new RestartRsHoldingTableAction(sleepTime, tableName.getNameAsString()), - new MoveRandomRegionOfTableAction(tableName.getNameAsString())); + new MoveRandomRegionOfTableAction(tableName)); this.monkey = new PolicyBasedChaosMonkey(util, p); // don't start monkey right away } @@ -213,8 +212,8 @@ public class IntegrationTestRegionReplicaPerf extends IntegrationTestBase { } @Override - public String getTablename() { - return tableName.getNameAsString(); + public TableName getTablename() { + return tableName; } @Override http://git-wip-us.apache.org/repos/asf/hbase/blob/0cbe0522/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/AddColumnAction.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/AddColumnAction.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/AddColumnAction.java index aa29b78..e7d2e12 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/AddColumnAction.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/AddColumnAction.java @@ -25,8 +25,6 @@ import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; -import org.apache.hadoop.hbase.client.HBaseAdmin; -import org.apache.hadoop.hbase.util.Bytes; /** * Action the adds a column family to a table. @@ -35,8 +33,8 @@ public class AddColumnAction extends Action { private final TableName tableName; private Admin admin; - public AddColumnAction(String tableName) { - this.tableName = TableName.valueOf(tableName); + public AddColumnAction(TableName tableName) { + this.tableName = tableName; } @Override http://git-wip-us.apache.org/repos/asf/hbase/blob/0cbe0522/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeBloomFilterAction.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeBloomFilterAction.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeBloomFilterAction.java index 62db382..5bd7444 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeBloomFilterAction.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeBloomFilterAction.java @@ -25,9 +25,7 @@ import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; -import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.regionserver.BloomType; -import org.apache.hadoop.hbase.util.Bytes; /** * Action that tries to adjust the bloom filter setting on all the columns of a @@ -37,13 +35,13 @@ public class ChangeBloomFilterAction extends Action { private final long sleepTime; private final TableName tableName; - public ChangeBloomFilterAction(String tableName) { + public ChangeBloomFilterAction(TableName tableName) { this(-1, tableName); } - public ChangeBloomFilterAction(int sleepTime, String tableName) { + public ChangeBloomFilterAction(int sleepTime, TableName tableName) { this.sleepTime = sleepTime; - this.tableName = TableName.valueOf(tableName); + this.tableName = tableName; } @Override http://git-wip-us.apache.org/repos/asf/hbase/blob/0cbe0522/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeCompressionAction.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeCompressionAction.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeCompressionAction.java index 07deb3d..f048b58 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeCompressionAction.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeCompressionAction.java @@ -25,23 +25,19 @@ import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; -import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.io.compress.Compression.Algorithm; -import org.apache.hadoop.hbase.util.Bytes; /** * Action that changes the compression algorithm on a column family from a list of tables. */ public class ChangeCompressionAction extends Action { private final TableName tableName; - private final String tableNameString; private Admin admin; private Random random; - public ChangeCompressionAction(String tableName) { - tableNameString = tableName; - this.tableName = TableName.valueOf(tableName); + public ChangeCompressionAction(TableName tableName) { + this.tableName = tableName; this.random = new Random(); } @@ -69,7 +65,7 @@ public class ChangeCompressionAction extends Action { Algorithm algo = possibleAlgos[random.nextInt(possibleAlgos.length)]; LOG.debug("Performing action: Changing compression algorithms on " - + tableNameString + " to " + algo); + + tableName.getNameAsString() + " to " + algo); for (HColumnDescriptor descriptor : columnDescriptors) { if (random.nextBoolean()) { descriptor.setCompactionCompressionType(algo); http://git-wip-us.apache.org/repos/asf/hbase/blob/0cbe0522/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeEncodingAction.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeEncodingAction.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeEncodingAction.java index e44c132..4833d70 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeEncodingAction.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeEncodingAction.java @@ -25,9 +25,7 @@ import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; -import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding; -import org.apache.hadoop.hbase.util.Bytes; /** * Action that changes the encoding on a column family from a list of tables. @@ -38,8 +36,8 @@ public class ChangeEncodingAction extends Action { private Admin admin; private Random random; - public ChangeEncodingAction(String tableName) { - this.tableName = TableName.valueOf(tableName); + public ChangeEncodingAction(TableName tableName) { + this.tableName = tableName; this.random = new Random(); } http://git-wip-us.apache.org/repos/asf/hbase/blob/0cbe0522/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeVersionsAction.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeVersionsAction.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeVersionsAction.java index 48799e6..0faa8a3 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeVersionsAction.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeVersionsAction.java @@ -25,8 +25,6 @@ import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; -import org.apache.hadoop.hbase.client.HBaseAdmin; -import org.apache.hadoop.hbase.util.Bytes; /** * Action that changes the number of versions on a column family from a list of tables. @@ -35,14 +33,12 @@ import org.apache.hadoop.hbase.util.Bytes; */ public class ChangeVersionsAction extends Action { private final TableName tableName; - private final String tableNameString; private Admin admin; private Random random; - public ChangeVersionsAction(String tableName) { - tableNameString = tableName; - this.tableName = TableName.valueOf(tableName); + public ChangeVersionsAction(TableName tableName) { + this.tableName = tableName; this.random = new Random(); } @@ -66,7 +62,7 @@ public class ChangeVersionsAction extends Action { descriptor.setMaxVersions(versions); descriptor.setMinVersions(versions); } - LOG.debug("Performing action: Changing versions on " + tableNameString); + LOG.debug("Performing action: Changing versions on " + tableName.getNameAsString()); admin.modifyTable(tableName, tableDescriptor); } } http://git-wip-us.apache.org/repos/asf/hbase/blob/0cbe0522/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CompactRandomRegionOfTableAction.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CompactRandomRegionOfTableAction.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CompactRandomRegionOfTableAction.java index 410859a..114b511 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CompactRandomRegionOfTableAction.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CompactRandomRegionOfTableAction.java @@ -26,8 +26,6 @@ import org.apache.hadoop.hbase.HRegionInfo; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey; import org.apache.hadoop.hbase.client.Admin; -import org.apache.hadoop.hbase.client.HBaseAdmin; -import org.apache.hadoop.hbase.util.Bytes; /** * Region that queues a compaction of a random region from the table. @@ -38,15 +36,15 @@ public class CompactRandomRegionOfTableAction extends Action { private final TableName tableName; public CompactRandomRegionOfTableAction( - String tableName, float majorRatio) { + TableName tableName, float majorRatio) { this(-1, tableName, majorRatio); } public CompactRandomRegionOfTableAction( - int sleepTime, String tableName, float majorRatio) { + int sleepTime, TableName tableName, float majorRatio) { this.majorRatio = (int) (100 * majorRatio); this.sleepTime = sleepTime; - this.tableName = TableName.valueOf(tableName); + this.tableName = tableName; } @Override @@ -69,10 +67,10 @@ public class CompactRandomRegionOfTableAction extends Action { try { if (major) { LOG.debug("Major compacting region " + region.getRegionNameAsString()); - admin.majorCompact(region.getRegionName()); + admin.majorCompactRegion(region.getRegionName()); } else { LOG.debug("Compacting region " + region.getRegionNameAsString()); - admin.compact(region.getRegionName()); + admin.compactRegion(region.getRegionName()); } } catch (Exception ex) { LOG.warn("Compaction failed, might be caused by other chaos: " + ex.getMessage()); http://git-wip-us.apache.org/repos/asf/hbase/blob/0cbe0522/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CompactTableAction.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CompactTableAction.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CompactTableAction.java index 63af0b8..796cc43 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CompactTableAction.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CompactTableAction.java @@ -20,29 +20,26 @@ package org.apache.hadoop.hbase.chaos.actions; import org.apache.commons.lang.math.RandomUtils; import org.apache.hadoop.hbase.HBaseTestingUtility; +import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; -import org.apache.hadoop.hbase.client.HBaseAdmin; -import org.apache.hadoop.hbase.util.Bytes; /** * Action that queues a table compaction. */ public class CompactTableAction extends Action { - private final byte[] tableNameBytes; + private final TableName tableName; private final int majorRatio; private final long sleepTime; - private final String tableName; - public CompactTableAction(String tableName, float majorRatio) { + public CompactTableAction(TableName tableName, float majorRatio) { this(-1, tableName, majorRatio); } public CompactTableAction( - int sleepTime, String tableName, float majorRatio) { - this.tableNameBytes = Bytes.toBytes(tableName); + int sleepTime, TableName tableName, float majorRatio) { + this.tableName = tableName; this.majorRatio = (int) (100 * majorRatio); this.sleepTime = sleepTime; - this.tableName = tableName; } @Override @@ -54,9 +51,9 @@ public class CompactTableAction extends Action { LOG.info("Performing action: Compact table " + tableName + ", major=" + major); try { if (major) { - admin.majorCompact(tableNameBytes); + admin.majorCompact(tableName); } else { - admin.compact(tableNameBytes); + admin.compact(tableName); } } catch (Exception ex) { LOG.warn("Compaction failed, might be caused by other chaos: " + ex.getMessage()); http://git-wip-us.apache.org/repos/asf/hbase/blob/0cbe0522/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/FlushRandomRegionOfTableAction.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/FlushRandomRegionOfTableAction.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/FlushRandomRegionOfTableAction.java index 671bf2b..c919789 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/FlushRandomRegionOfTableAction.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/FlushRandomRegionOfTableAction.java @@ -25,8 +25,6 @@ import org.apache.hadoop.hbase.HRegionInfo; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey; import org.apache.hadoop.hbase.client.Admin; -import org.apache.hadoop.hbase.client.HBaseAdmin; -import org.apache.hadoop.hbase.util.Bytes; /** * Action that tries to flush a random region of a table. @@ -35,13 +33,13 @@ public class FlushRandomRegionOfTableAction extends Action { private final long sleepTime; private final TableName tableName; - public FlushRandomRegionOfTableAction(String tableName) { + public FlushRandomRegionOfTableAction(TableName tableName) { this (-1, tableName); } - public FlushRandomRegionOfTableAction(int sleepTime, String tableName) { + public FlushRandomRegionOfTableAction(int sleepTime, TableName tableName) { this.sleepTime = sleepTime; - this.tableName = TableName.valueOf(tableName); + this.tableName = tableName; } @Override @@ -60,7 +58,7 @@ public class FlushRandomRegionOfTableAction extends Action { regions.toArray(new HRegionInfo[regions.size()])); LOG.debug("Flushing region " + region.getRegionNameAsString()); try { - admin.flush(region.getRegionName()); + admin.flushRegion(region.getRegionName()); } catch (Exception ex) { LOG.warn("Flush failed, might be caused by other chaos: " + ex.getMessage()); } http://git-wip-us.apache.org/repos/asf/hbase/blob/0cbe0522/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/FlushTableAction.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/FlushTableAction.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/FlushTableAction.java index 4ae21d1..f86d2a1 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/FlushTableAction.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/FlushTableAction.java @@ -21,8 +21,6 @@ package org.apache.hadoop.hbase.chaos.actions; import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; -import org.apache.hadoop.hbase.client.HBaseAdmin; -import org.apache.hadoop.hbase.util.Bytes; /** * Action that tries to flush a table. @@ -31,13 +29,13 @@ public class FlushTableAction extends Action { private final long sleepTime; private final TableName tableName; - public FlushTableAction(String tableName) { + public FlushTableAction(TableName tableName) { this(-1, tableName); } - public FlushTableAction(int sleepTime, String tableName) { + public FlushTableAction(int sleepTime, TableName tableName) { this.sleepTime = sleepTime; - this.tableName = TableName.valueOf(tableName); + this.tableName = tableName; } @Override @@ -47,7 +45,7 @@ public class FlushTableAction extends Action { LOG.info("Performing action: Flush table " + tableName); try { - admin.flush(tableName.toBytes()); + admin.flush(tableName); } catch (Exception ex) { LOG.warn("Flush failed, might be caused by other chaos: " + ex.getMessage()); } http://git-wip-us.apache.org/repos/asf/hbase/blob/0cbe0522/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MergeRandomAdjacentRegionsOfTableAction.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MergeRandomAdjacentRegionsOfTableAction.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MergeRandomAdjacentRegionsOfTableAction.java index ecb58da..0aaefe5 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MergeRandomAdjacentRegionsOfTableAction.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MergeRandomAdjacentRegionsOfTableAction.java @@ -25,8 +25,6 @@ import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.HRegionInfo; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; -import org.apache.hadoop.hbase.client.HBaseAdmin; -import org.apache.hadoop.hbase.util.Bytes; /** * Action to merge regions of a table. @@ -35,12 +33,12 @@ public class MergeRandomAdjacentRegionsOfTableAction extends Action { private final TableName tableName; private final long sleepTime; - public MergeRandomAdjacentRegionsOfTableAction(String tableName) { + public MergeRandomAdjacentRegionsOfTableAction(TableName tableName) { this(-1, tableName); } - public MergeRandomAdjacentRegionsOfTableAction(int sleepTime, String tableName) { - this.tableName = TableName.valueOf(tableName); + public MergeRandomAdjacentRegionsOfTableAction(int sleepTime, TableName tableName) { + this.tableName = tableName; this.sleepTime = sleepTime; } http://git-wip-us.apache.org/repos/asf/hbase/blob/0cbe0522/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MoveRandomRegionOfTableAction.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MoveRandomRegionOfTableAction.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MoveRandomRegionOfTableAction.java index 0981fb5..96cd008 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MoveRandomRegionOfTableAction.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MoveRandomRegionOfTableAction.java @@ -25,8 +25,6 @@ import org.apache.hadoop.hbase.HRegionInfo; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey; import org.apache.hadoop.hbase.client.Admin; -import org.apache.hadoop.hbase.client.HBaseAdmin; -import org.apache.hadoop.hbase.util.Bytes; /** * Action that tries to move a random region of a table. @@ -35,13 +33,13 @@ public class MoveRandomRegionOfTableAction extends Action { private final long sleepTime; private final TableName tableName; - public MoveRandomRegionOfTableAction(String tableName) { + public MoveRandomRegionOfTableAction(TableName tableName) { this(-1, tableName); } - public MoveRandomRegionOfTableAction(long sleepTime, String tableName) { + public MoveRandomRegionOfTableAction(long sleepTime, TableName tableName) { this.sleepTime = sleepTime; - this.tableName = TableName.valueOf(tableName); + this.tableName = tableName; } @Override http://git-wip-us.apache.org/repos/asf/hbase/blob/0cbe0522/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MoveRegionsOfTableAction.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MoveRegionsOfTableAction.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MoveRegionsOfTableAction.java index 50d1948..5e380a3 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MoveRegionsOfTableAction.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MoveRegionsOfTableAction.java @@ -28,7 +28,6 @@ import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.chaos.factories.MonkeyConstants; import org.apache.hadoop.hbase.client.Admin; -import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.util.Bytes; /** @@ -39,13 +38,13 @@ public class MoveRegionsOfTableAction extends Action { private final TableName tableName; private final long maxTime; - public MoveRegionsOfTableAction(String tableName) { + public MoveRegionsOfTableAction(TableName tableName) { this(-1, MonkeyConstants.DEFAULT_MOVE_REGIONS_MAX_TIME, tableName); } - public MoveRegionsOfTableAction(long sleepTime, long maxSleepTime, String tableName) { + public MoveRegionsOfTableAction(long sleepTime, long maxSleepTime, TableName tableName) { this.sleepTime = sleepTime; - this.tableName = TableName.valueOf(tableName); + this.tableName = tableName; this.maxTime = maxSleepTime; } http://git-wip-us.apache.org/repos/asf/hbase/blob/0cbe0522/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RemoveColumnAction.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RemoveColumnAction.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RemoveColumnAction.java index bfcf1b5..fc169e3 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RemoveColumnAction.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RemoveColumnAction.java @@ -26,8 +26,6 @@ import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; -import org.apache.hadoop.hbase.client.HBaseAdmin; -import org.apache.hadoop.hbase.util.Bytes; /** * Action that removes a column family. @@ -35,13 +33,11 @@ import org.apache.hadoop.hbase.util.Bytes; public class RemoveColumnAction extends Action { private final TableName tableName; private final Set<String> protectedColumns; - private final String tableNameString; private Admin admin; private Random random; - public RemoveColumnAction(String tableName, Set<String> protectedColumns) { - tableNameString = tableName; - this.tableName = TableName.valueOf(tableName); + public RemoveColumnAction(TableName tableName, Set<String> protectedColumns) { + this.tableName = tableName; this.protectedColumns = protectedColumns; random = new Random(); } @@ -67,7 +63,7 @@ public class RemoveColumnAction extends Action { index = random.nextInt(columnDescriptors.length); } LOG.debug("Performing action: Removing " + columnDescriptors[index].getName() + " from " - + tableNameString); + + tableName.getNameAsString()); tableDescriptor.removeFamily(columnDescriptors[index].getName()); admin.modifyTable(tableName, tableDescriptor); http://git-wip-us.apache.org/repos/asf/hbase/blob/0cbe0522/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/SnapshotTableAction.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/SnapshotTableAction.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/SnapshotTableAction.java index c0dedaa..1c7a9d9 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/SnapshotTableAction.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/SnapshotTableAction.java @@ -21,7 +21,6 @@ package org.apache.hadoop.hbase.chaos.actions; import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; -import org.apache.hadoop.hbase.client.HBaseAdmin; /** * Action that tries to take a snapshot of a table. @@ -30,12 +29,12 @@ public class SnapshotTableAction extends Action { private final TableName tableName; private final long sleepTime; - public SnapshotTableAction(String tableName) { + public SnapshotTableAction(TableName tableName) { this(-1, tableName); } - public SnapshotTableAction(int sleepTime, String tableName) { - this.tableName = TableName.valueOf(tableName); + public SnapshotTableAction(int sleepTime, TableName tableName) { + this.tableName = tableName; this.sleepTime = sleepTime; } http://git-wip-us.apache.org/repos/asf/hbase/blob/0cbe0522/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/SplitRandomRegionOfTableAction.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/SplitRandomRegionOfTableAction.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/SplitRandomRegionOfTableAction.java index d0c3419..209ef24 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/SplitRandomRegionOfTableAction.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/SplitRandomRegionOfTableAction.java @@ -25,8 +25,6 @@ import org.apache.hadoop.hbase.HRegionInfo; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey; import org.apache.hadoop.hbase.client.Admin; -import org.apache.hadoop.hbase.client.HBaseAdmin; -import org.apache.hadoop.hbase.util.Bytes; /** * Action that tries to split a random region of a table. @@ -35,13 +33,13 @@ public class SplitRandomRegionOfTableAction extends Action { private final long sleepTime; private final TableName tableName; - public SplitRandomRegionOfTableAction(String tableName) { + public SplitRandomRegionOfTableAction(TableName tableName) { this(-1, tableName); } - public SplitRandomRegionOfTableAction(int sleepTime, String tableName) { + public SplitRandomRegionOfTableAction(int sleepTime, TableName tableName) { this.sleepTime = sleepTime; - this.tableName = TableName.valueOf(tableName); + this.tableName = tableName; } @Override @@ -60,7 +58,7 @@ public class SplitRandomRegionOfTableAction extends Action { regions.toArray(new HRegionInfo[regions.size()])); LOG.debug("Splitting region " + region.getRegionNameAsString()); try { - admin.split(region.getRegionName()); + admin.splitRegion(region.getRegionName()); } catch (Exception ex) { LOG.warn("Split failed, might be caused by other chaos: " + ex.getMessage()); } http://git-wip-us.apache.org/repos/asf/hbase/blob/0cbe0522/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MonkeyFactory.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MonkeyFactory.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MonkeyFactory.java index 8fb1859..532839e 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MonkeyFactory.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MonkeyFactory.java @@ -23,6 +23,7 @@ import java.util.Properties; import java.util.Set; import org.apache.hadoop.hbase.IntegrationTestingUtility; +import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.chaos.monkies.ChaosMonkey; import com.google.common.collect.ImmutableMap; @@ -32,12 +33,12 @@ import com.google.common.collect.ImmutableMap; */ public abstract class MonkeyFactory { - protected String tableName; + protected TableName tableName; protected Set<String> columnFamilies; protected IntegrationTestingUtility util; protected Properties properties = new Properties(); - public MonkeyFactory setTableName(String tableName) { + public MonkeyFactory setTableName(TableName tableName) { this.tableName = tableName; return this; }