diff --git a/hbase/src/main/java/com/yahoo/ycsb/db/HBaseClient.java b/hbase/src/main/java/com/yahoo/ycsb/db/HBaseClient.java index 15c5088160711640771d12572f3e8bdc992e9daa..c81cfa3cc0ef89e5135069d5329eb6dafc48c63a 100644 --- a/hbase/src/main/java/com/yahoo/ycsb/db/HBaseClient.java +++ b/hbase/src/main/java/com/yahoo/ycsb/db/HBaseClient.java @@ -32,6 +32,7 @@ import java.util.*; import com.yahoo.ycsb.measurements.Measurements; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.KeyValue; +import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.client.HTable; //import org.apache.hadoop.hbase.client.Scanner; import org.apache.hadoop.hbase.client.Get; @@ -99,6 +100,19 @@ public class HBaseClient extends com.yahoo.ycsb.DB } _columnFamilyBytes = Bytes.toBytes(_columnFamily); + // Terminate right now if table does not exist, since the client + // will not propagate this error upstream once the workload + // starts. + String table = com.yahoo.ycsb.workloads.CoreWorkload.table; + try + { + HTable ht = new HTable(config, table); + HTableDescriptor dsc = ht.getTableDescriptor(); + } + catch (IOException e) + { + throw new DBException("Error accessing HBase table: " + table); + } } /** diff --git a/hbase/src/main/java/com/yahoo/ycsb/db/HBaseClient10.java b/hbase/src/main/java/com/yahoo/ycsb/db/HBaseClient10.java index 7adef892c698493557c09aaf58023c7296b248d6..bd4d6c6db0b65e34db066c3b5bbec0936aae3726 100644 --- a/hbase/src/main/java/com/yahoo/ycsb/db/HBaseClient10.java +++ b/hbase/src/main/java/com/yahoo/ycsb/db/HBaseClient10.java @@ -27,6 +27,7 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.CellUtil; import org.apache.hadoop.hbase.HBaseConfiguration; +import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.KeyValue; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.BufferedMutator; @@ -36,6 +37,7 @@ import org.apache.hadoop.hbase.client.ConnectionFactory; import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.Durability; import org.apache.hadoop.hbase.client.Get; +import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.ResultScanner; @@ -133,6 +135,20 @@ public class HBaseClient10 extends com.yahoo.ycsb.DB throw new DBException("No columnfamily specified"); } _columnFamilyBytes = Bytes.toBytes(_columnFamily); + + // Terminate right now if table does not exist, since the client + // will not propagate this error upstream once the workload + // starts. + String table = com.yahoo.ycsb.workloads.CoreWorkload.table; + try + { + HTable ht = new HTable(config, table); + HTableDescriptor dsc = ht.getTableDescriptor(); + } + catch (IOException e) + { + throw new DBException("Error accessing HBase table: " + table); + } } /**