You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by bu...@apache.org on 2017/07/29 23:51:55 UTC

[17/47] hbase git commit: HBASE-18428 Migrate ITDDLMasterFailover away from HTable/HColumn

HBASE-18428 Migrate ITDDLMasterFailover away from HTable/HColumn

Signed-off-by: Michael Stack <st...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/f391770f
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/f391770f
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/f391770f

Branch: refs/heads/HBASE-18426
Commit: f391770f47aebc824b462308c7ef9e508e76e209
Parents: 8e2f0b2
Author: Mike Drob <md...@apache.org>
Authored: Fri Jul 21 15:36:09 2017 -0500
Committer: Michael Stack <st...@apache.org>
Committed: Sun Jul 23 10:29:16 2017 +0100

----------------------------------------------------------------------
 .../hbase/IntegrationTestDDLMasterFailover.java | 135 ++++++++++---------
 1 file changed, 74 insertions(+), 61 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/f391770f/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.java
----------------------------------------------------------------------
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.java
index 2d3693a..e280453 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.java
+++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.java
@@ -31,10 +31,14 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
+import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
 import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.ConnectionFactory;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Table;
+import org.apache.hadoop.hbase.client.TableDescriptor;
+import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
 import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding;
 import org.apache.hadoop.hbase.testclassification.IntegrationTests;
 import org.apache.hadoop.hbase.util.Bytes;
@@ -127,11 +131,11 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase {
 
   ConcurrentHashMap<String, NamespaceDescriptor> namespaceMap = new ConcurrentHashMap<>();
 
-  ConcurrentHashMap<TableName, HTableDescriptor> enabledTables = new ConcurrentHashMap<>();
+  ConcurrentHashMap<TableName, TableDescriptor> enabledTables = new ConcurrentHashMap<>();
 
-  ConcurrentHashMap<TableName, HTableDescriptor> disabledTables = new ConcurrentHashMap<>();
+  ConcurrentHashMap<TableName, TableDescriptor> disabledTables = new ConcurrentHashMap<>();
 
-  ConcurrentHashMap<TableName, HTableDescriptor> deletedTables = new ConcurrentHashMap<>();
+  ConcurrentHashMap<TableName, TableDescriptor> deletedTables = new ConcurrentHashMap<>();
 
   @Override
   public void setUpCluster() throws Exception {
@@ -384,7 +388,7 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase {
 
   private abstract class TableAction extends  MasterAction{
     // TableAction has implemented selectTable() shared by multiple table Actions
-    protected HTableDescriptor selectTable(ConcurrentHashMap<TableName, HTableDescriptor> tableMap)
+    protected TableDescriptor selectTable(ConcurrentHashMap<TableName, TableDescriptor> tableMap)
     {
       // synchronization to prevent removal from multiple threads
       synchronized (tableMap){
@@ -394,10 +398,8 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase {
         }
         ArrayList<TableName> tableList = new ArrayList<>(tableMap.keySet());
         TableName randomKey = tableList.get(RandomUtils.nextInt(tableList.size()));
-        HTableDescriptor randomHtd = tableMap.get(randomKey);
-        // remove from tableMap
-        tableMap.remove(randomKey);
-        return randomHtd;
+        TableDescriptor randomTd = tableMap.remove(randomKey);
+        return randomTd;
       }
     }
   }
@@ -408,8 +410,8 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase {
     void perform() throws IOException {
       Admin admin = connection.getAdmin();
       try {
-        HTableDescriptor htd = createTableDesc();
-        TableName tableName = htd.getTableName();
+        TableDescriptor td = createTableDesc();
+        TableName tableName = td.getTableName();
         if ( admin.tableExists(tableName)){
           return;
         }
@@ -417,10 +419,10 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase {
         numRegions = getConf().getInt(numRegionKey, DEFAULT_NUM_REGIONS);
         byte[] startKey = Bytes.toBytes("row-0000000000");
         byte[] endKey = Bytes.toBytes("row-" + Integer.MAX_VALUE);
-        LOG.info("Creating table:" + htd);
-        admin.createTable(htd, startKey, endKey, numRegions);
-        Assert.assertTrue("Table: " + htd + " was not created", admin.tableExists(tableName));
-        HTableDescriptor freshTableDesc = admin.getTableDescriptor(tableName);
+        LOG.info("Creating table:" + td);
+        admin.createTable(td, startKey, endKey, numRegions);
+        Assert.assertTrue("Table: " + td + " was not created", admin.tableExists(tableName));
+        TableDescriptor freshTableDesc = admin.listTableDescriptor(tableName);
         Assert.assertTrue(
           "After create, Table: " + tableName + " in not enabled", admin.isTableEnabled(tableName));
         enabledTables.put(tableName, freshTableDesc);
@@ -433,14 +435,12 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase {
       }
     }
 
-    private HTableDescriptor createTableDesc() {
-      String tableName = "ittable-" + String.format("%010d",
-        RandomUtils.nextInt(Integer.MAX_VALUE));
+    private TableDescriptor createTableDesc() {
+      String tableName = String.format("ittable-%010d", RandomUtils.nextInt(Integer.MAX_VALUE));
       String familyName = "cf-" + Math.abs(RandomUtils.nextInt());
-      HTableDescriptor htd = new HTableDescriptor(TableName.valueOf(tableName));
-      // add random column family
-      htd.addFamily(new HColumnDescriptor(familyName));
-      return htd;
+      return TableDescriptorBuilder.newBuilder(TableName.valueOf(tableName))
+          .addColumnFamily(ColumnFamilyDescriptorBuilder.of(familyName))
+          .build();
     }
   }
 
@@ -449,7 +449,7 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase {
     @Override
     void perform() throws IOException {
 
-      HTableDescriptor selected = selectTable(enabledTables);
+      TableDescriptor selected = selectTable(enabledTables);
       if (selected == null) {
         return;
       }
@@ -461,7 +461,7 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase {
         admin.disableTable(tableName);
         Assert.assertTrue("Table: " + selected + " was not disabled",
             admin.isTableDisabled(tableName));
-        HTableDescriptor freshTableDesc = admin.getTableDescriptor(tableName);
+        TableDescriptor freshTableDesc = admin.listTableDescriptor(tableName);
         Assert.assertTrue(
           "After disable, Table: " + tableName + " is not disabled",
           admin.isTableDisabled(tableName));
@@ -498,7 +498,7 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase {
     @Override
     void perform() throws IOException {
 
-      HTableDescriptor selected = selectTable(disabledTables);
+      TableDescriptor selected = selectTable(disabledTables);
       if (selected == null ) {
         return;
       }
@@ -510,7 +510,7 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase {
         admin.enableTable(tableName);
         Assert.assertTrue("Table: " + selected + " was not enabled",
             admin.isTableEnabled(tableName));
-        HTableDescriptor freshTableDesc = admin.getTableDescriptor(tableName);
+        TableDescriptor freshTableDesc = admin.listTableDescriptor(tableName);
         Assert.assertTrue(
           "After enable, Table: " + tableName + " in not enabled", admin.isTableEnabled(tableName));
         enabledTables.put(tableName, freshTableDesc);
@@ -546,7 +546,7 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase {
     @Override
     void perform() throws IOException {
 
-      HTableDescriptor selected = selectTable(disabledTables);
+      TableDescriptor selected = selectTable(disabledTables);
       if (selected == null) {
         return;
       }
@@ -572,16 +572,16 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase {
 
   private abstract class ColumnAction extends TableAction{
     // ColumnAction has implemented selectFamily() shared by multiple family Actions
-    protected HColumnDescriptor selectFamily(HTableDescriptor htd) {
-      if (htd == null) {
+    protected ColumnFamilyDescriptor selectFamily(TableDescriptor td) {
+      if (td == null) {
         return null;
       }
-      HColumnDescriptor[] families = htd.getColumnFamilies();
+      ColumnFamilyDescriptor[] families = td.getColumnFamilies();
       if (families.length == 0){
-        LOG.info("No column families in table: " + htd);
+        LOG.info("No column families in table: " + td);
         return null;
       }
-      HColumnDescriptor randomCfd = families[RandomUtils.nextInt(families.length)];
+      ColumnFamilyDescriptor randomCfd = families[RandomUtils.nextInt(families.length)];
       return randomCfd;
     }
   }
@@ -590,26 +590,26 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase {
 
     @Override
     void perform() throws IOException {
-      HTableDescriptor selected = selectTable(disabledTables);
+      TableDescriptor selected = selectTable(disabledTables);
       if (selected == null) {
         return;
       }
 
       Admin admin = connection.getAdmin();
       try {
-        HColumnDescriptor cfd = createFamilyDesc();
-        if (selected.hasFamily(cfd.getName())){
+        ColumnFamilyDescriptor cfd = createFamilyDesc();
+        if (selected.hasColumnFamily(cfd.getName())){
           LOG.info(new String(cfd.getName()) + " already exists in table "
               + selected.getTableName());
           return;
         }
         TableName tableName = selected.getTableName();
         LOG.info("Adding column family: " + cfd + " to table: " + tableName);
-        admin.addColumn(tableName, cfd);
+        admin.addColumnFamily(tableName, cfd);
         // assertion
-        HTableDescriptor freshTableDesc = admin.getTableDescriptor(tableName);
+        TableDescriptor freshTableDesc = admin.listTableDescriptor(tableName);
         Assert.assertTrue("Column family: " + cfd + " was not added",
-            freshTableDesc.hasFamily(cfd.getName()));
+            freshTableDesc.hasColumnFamily(cfd.getName()));
         Assert.assertTrue(
           "After add column family, Table: " + tableName + " is not disabled",
           admin.isTableDisabled(tableName));
@@ -623,10 +623,9 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase {
       }
     }
 
-    private HColumnDescriptor createFamilyDesc() {
-      String familyName = "cf-" + String.format("%010d", RandomUtils.nextInt(Integer.MAX_VALUE));
-      HColumnDescriptor cfd = new HColumnDescriptor(familyName);
-      return cfd;
+    private ColumnFamilyDescriptor createFamilyDesc() {
+      String familyName = String.format("cf-%010d", RandomUtils.nextInt(Integer.MAX_VALUE));
+      return ColumnFamilyDescriptorBuilder.of(familyName);
     }
   }
 
@@ -634,11 +633,11 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase {
 
     @Override
     void perform() throws IOException {
-      HTableDescriptor selected = selectTable(disabledTables);
+      TableDescriptor selected = selectTable(disabledTables);
       if (selected == null) {
         return;
       }
-      HColumnDescriptor columnDesc = selectFamily(selected);
+      ColumnFamilyDescriptor columnDesc = selectFamily(selected);
       if (columnDesc == null){
         return;
       }
@@ -649,12 +648,19 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase {
         TableName tableName = selected.getTableName();
         LOG.info("Altering versions of column family: " + columnDesc + " to: " + versions +
             " in table: " + tableName);
-        columnDesc.setMinVersions(versions);
-        columnDesc.setMaxVersions(versions);
-        admin.modifyTable(tableName, selected);
+
+        ColumnFamilyDescriptor cfd = ColumnFamilyDescriptorBuilder.newBuilder(columnDesc)
+            .setMinVersions(versions)
+            .setMaxVersions(versions)
+            .build();
+        TableDescriptor td = TableDescriptorBuilder.newBuilder(selected)
+            .modifyColumnFamily(cfd)
+            .build();
+        admin.modifyTable(td);
+
         // assertion
-        HTableDescriptor freshTableDesc = admin.getTableDescriptor(tableName);
-        HColumnDescriptor freshColumnDesc = freshTableDesc.getFamily(columnDesc.getName());
+        TableDescriptor freshTableDesc = admin.listTableDescriptor(tableName);
+        ColumnFamilyDescriptor freshColumnDesc = freshTableDesc.getColumnFamily(columnDesc.getName());
         Assert.assertEquals("Column family: " + columnDesc + " was not altered",
             freshColumnDesc.getMaxVersions(), versions);
         Assert.assertEquals("Column family: " + freshColumnDesc + " was not altered",
@@ -678,11 +684,11 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase {
 
     @Override
     void perform() throws IOException {
-      HTableDescriptor selected = selectTable(disabledTables);
+      TableDescriptor selected = selectTable(disabledTables);
       if (selected == null) {
         return;
       }
-      HColumnDescriptor columnDesc = selectFamily(selected);
+      ColumnFamilyDescriptor columnDesc = selectFamily(selected);
       if (columnDesc == null){
         return;
       }
@@ -695,11 +701,18 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase {
         short id = (short) possibleIds[RandomUtils.nextInt(possibleIds.length)];
         LOG.info("Altering encoding of column family: " + columnDesc + " to: " + id +
             " in table: " + tableName);
-        columnDesc.setDataBlockEncoding(DataBlockEncoding.getEncodingById(id));
-        admin.modifyTable(tableName, selected);
+
+        ColumnFamilyDescriptor cfd = ColumnFamilyDescriptorBuilder.newBuilder(columnDesc)
+            .setDataBlockEncoding(DataBlockEncoding.getEncodingById(id))
+            .build();
+        TableDescriptor td = TableDescriptorBuilder.newBuilder(selected)
+            .modifyColumnFamily(cfd)
+            .build();
+        admin.modifyTable(td);
+
         // assertion
-        HTableDescriptor freshTableDesc = admin.getTableDescriptor(tableName);
-        HColumnDescriptor freshColumnDesc = freshTableDesc.getFamily(columnDesc.getName());
+        TableDescriptor freshTableDesc = admin.getTableDescriptor(tableName);
+        ColumnFamilyDescriptor freshColumnDesc = freshTableDesc.getColumnFamily(columnDesc.getName());
         Assert.assertEquals("Encoding of column family: " + columnDesc + " was not altered",
             freshColumnDesc.getDataBlockEncoding().getId(), id);
         Assert.assertTrue(
@@ -721,8 +734,8 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase {
 
     @Override
     void perform() throws IOException {
-      HTableDescriptor selected = selectTable(disabledTables);
-      HColumnDescriptor cfd = selectFamily(selected);
+      TableDescriptor selected = selectTable(disabledTables);
+      ColumnFamilyDescriptor cfd = selectFamily(selected);
       if (selected == null || cfd == null) {
         return;
       }
@@ -737,9 +750,9 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase {
         LOG.info("Deleting column family: " + cfd + " from table: " + tableName);
         admin.deleteColumnFamily(tableName, cfd.getName());
         // assertion
-        HTableDescriptor freshTableDesc = admin.getTableDescriptor(tableName);
+        TableDescriptor freshTableDesc = admin.listTableDescriptor(tableName);
         Assert.assertFalse("Column family: " + cfd + " was not added",
-            freshTableDesc.hasFamily(cfd.getName()));
+            freshTableDesc.hasColumnFamily(cfd.getName()));
         Assert.assertTrue(
           "After delete column family, Table: " + tableName + " is not disabled",
           admin.isTableDisabled(tableName));
@@ -758,7 +771,7 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase {
     // populate tables
     @Override
     void perform() throws IOException {
-      HTableDescriptor selected = selectTable(enabledTables);
+      TableDescriptor selected = selectTable(enabledTables);
       if (selected == null ) {
         return;
       }
@@ -777,7 +790,7 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase {
           // nextInt(Integer.MAX_VALUE)) to return positive numbers only
           byte[] rowKey = Bytes.toBytes(
               "row-" + String.format("%010d", RandomUtils.nextInt(Integer.MAX_VALUE)));
-          HColumnDescriptor cfd = selectFamily(selected);
+          ColumnFamilyDescriptor cfd = selectFamily(selected);
           if (cfd == null){
             return;
           }
@@ -788,7 +801,7 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase {
           put.addColumn(family, qualifier, value);
           table.put(put);
         }
-        HTableDescriptor freshTableDesc = admin.getTableDescriptor(tableName);
+        TableDescriptor freshTableDesc = admin.listTableDescriptor(tableName);
         Assert.assertTrue(
           "After insert, Table: " + tableName + " in not enabled", admin.isTableEnabled(tableName));
         enabledTables.put(tableName, freshTableDesc);