/** * rowFilter的使用 * * @param tableName * @param reg * @throws Exception */ public void getRowFilter(String tableName, String reg) throws Exception { Connection conn = null; HTable table = null; try { conn = ConnectionFactory.createConnection(conf); table = (HTable) conn.getTable(TableName.valueOf(tableName)); Scan scan = new Scan(); // Filter RowFilter rowFilter = new RowFilter(CompareOp.NOT_EQUAL, new RegexStringComparator(reg)); scan.setFilter(rowFilter); ResultScanner scanner = table.getScanner(scan); for (Result result : scanner) { System.out.println(new String(result.getRow())); } } catch (Exception e) { e.printStackTrace(); } finally { if (null != table) { try { table.close(); } catch (IOException e) { logger.error("HTable close exception, errMsg:{}", e.getMessage()); } } if (null != conn) { try { conn.close(); } catch (Exception e) { logger.error("Connection close exception, errMsg:{}", e.getMessage()); } } } }
@Override protected int doWork() throws Exception { Connection connection = null; Admin admin = null; try { connection = ConnectionFactory.createConnection(getConf()); admin = connection.getAdmin(); HBaseProtos.SnapshotDescription.Type type = HBaseProtos.SnapshotDescription.Type.FLUSH; if (snapshotType != null) { type = ProtobufUtil.createProtosSnapShotDescType(snapshotName); } admin.snapshot( new SnapshotDescription(snapshotName, tableName, ProtobufUtil.createSnapshotType(type))); } catch (Exception e) { return -1; } finally { if (admin != null) { admin.close(); } if (connection != null) { connection.close(); } } return 0; }
public static boolean createTableOrOverwrite(String tableName, String[] columnFamily) { if (tableName == null && columnFamily == null) { return false; } Connection connection = null; try { connection = ConnectionFactory.createConnection(config); Admin admin = connection.getAdmin(); if (admin.tableExists(TableName.valueOf(tableName))) { admin.disableTable(TableName.valueOf(tableName)); admin.deleteTable(TableName.valueOf(tableName)); } HTableDescriptor table = new HTableDescriptor(TableName.valueOf(tableName)); for (String cf : columnFamily) { table.addFamily(new HColumnDescriptor(cf)); } admin.createTable(table); System.out.println("create table successfully."); return true; } catch (IOException e) { e.printStackTrace(); return false; } finally { try { connection.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
public static int getDynamicTable(Configuration config) { /** Connection to the cluster. A single connection shared by all application threads. */ Connection connection = null; /** A lightweight handle to a specific table. Used from a single thread. */ Table table = null; try { connection = ConnectionFactory.createConnection(config); table = connection.getTable(TABLE_NAME1); Get get = new Get(Bytes.toBytes("cloudera")); get.addFamily(CF); get.setMaxVersions(Integer.MAX_VALUE); Result result = table.get(get); NavigableMap<byte[], NavigableMap<byte[], NavigableMap<Long, byte[]>>> map = result.getMap(); for (Entry<byte[], NavigableMap<byte[], NavigableMap<Long, byte[]>>> columnFamilyEntry : map.entrySet()) { NavigableMap<byte[], NavigableMap<Long, byte[]>> columnMap = columnFamilyEntry.getValue(); for (Entry<byte[], NavigableMap<Long, byte[]>> columnEntry : columnMap.entrySet()) { NavigableMap<Long, byte[]> cellMap = columnEntry.getValue(); for (Entry<Long, byte[]> cellEntry : cellMap.entrySet()) { System.out.println( String.format( "Key : %s, Value :%s", Bytes.toString(columnEntry.getKey()), Bytes.toString(cellEntry.getValue()))); } } } } catch (IOException e) { e.printStackTrace(); } return 0; }
/** * Sweeps the mob files on one column family. It deletes the unused mob files and merges the small * mob files into bigger ones. * * @param tableName The current table name in string format. * @param familyName The column family name. * @return 0 if success, 2 if job aborted with an exception, 3 if unable to start due to other * compaction,4 if mr job was unsuccessful * @throws IOException * @throws InterruptedException * @throws ClassNotFoundException * @throws KeeperException * @throws ServiceException */ int sweepFamily(String tableName, String familyName) throws IOException, InterruptedException, ClassNotFoundException, KeeperException, ServiceException { Configuration conf = getConf(); // make sure the target HBase exists. HBaseAdmin.checkHBaseAvailable(conf); Connection connection = ConnectionFactory.createConnection(getConf()); Admin admin = connection.getAdmin(); try { FileSystem fs = FileSystem.get(conf); TableName tn = TableName.valueOf(tableName); HTableDescriptor htd = admin.getTableDescriptor(tn); HColumnDescriptor family = htd.getFamily(Bytes.toBytes(familyName)); if (family == null || !family.isMobEnabled()) { throw new IOException("Column family " + familyName + " is not a MOB column family"); } SweepJob job = new SweepJob(conf, fs); // Run the sweeping return job.sweep(tn, family); } catch (Exception e) { System.err.println("Job aborted due to exception " + e); return 2; // job failed } finally { try { admin.close(); } catch (IOException e) { System.out.println("Failed to close the HBaseAdmin: " + e.getMessage()); } try { connection.close(); } catch (IOException e) { System.out.println("Failed to close the connection: " + e.getMessage()); } } }
private static void createTable() throws Exception { try { Configuration configuration = HBaseConfiguration.create(); HBaseAdmin.checkHBaseAvailable(configuration); Connection connection = ConnectionFactory.createConnection(configuration); // Instantiating HbaseAdmin class Admin admin = connection.getAdmin(); // Instantiating table descriptor class HTableDescriptor stockTableDesc = new HTableDescriptor(TableName.valueOf(Constants.STOCK_DATES_TABLE)); // Adding column families to table descriptor HColumnDescriptor stock_0414 = new HColumnDescriptor(Constants.STOCK_DATES_CF); stockTableDesc.addFamily(stock_0414); // Execute the table through admin if (!admin.tableExists(stockTableDesc.getTableName())) { admin.createTable(stockTableDesc); System.out.println("Stock table created !!!"); } // Load hbase-site.xml HBaseConfiguration.addHbaseResources(configuration); } catch (ServiceException e) { log.error("Error occurred while creating HBase tables", e); throw new Exception("Error occurred while creating HBase tables", e); } }
/** * 查询所有表 * * @return 所以表 / null * @throws Exception */ public static List<HTableDescriptor> queryALLTable() throws Exception { Connection conn = null; HBaseAdmin admin = null; try { conn = ConnectionFactory.createConnection(conf); admin = (HBaseAdmin) conn.getAdmin(); if (admin != null) { HTableDescriptor[] listTables = admin.listTables(); if (null != listTables && listTables.length > 0) { return Arrays.asList(listTables); } } } catch (Exception e) { e.printStackTrace(); } finally { try { if (null != admin) { admin.close(); } } catch (IOException e) { logger.error("HBaseAdmin close exception, errMsg:{}", e.getMessage()); } try { if (null != conn) { conn.close(); } } catch (Exception e) { logger.error("Connection close exception, errMsg:{}", e.getMessage()); } } return null; }
/** * Constructor that creates a connection to the local ZooKeeper ensemble. * * @param conf Configuration to use * @throws IOException if an internal replication error occurs * @throws RuntimeException if replication isn't enabled. */ public ReplicationAdmin(Configuration conf) throws IOException { if (!conf.getBoolean( HConstants.REPLICATION_ENABLE_KEY, HConstants.REPLICATION_ENABLE_DEFAULT)) { throw new RuntimeException( "hbase.replication isn't true, please " + "enable it in order to use replication"); } this.connection = ConnectionFactory.createConnection(conf); try { zkw = createZooKeeperWatcher(); try { this.replicationPeers = ReplicationFactory.getReplicationPeers(zkw, conf, this.connection); this.replicationPeers.init(); this.replicationQueuesClient = ReplicationFactory.getReplicationQueuesClient(zkw, conf, this.connection); this.replicationQueuesClient.init(); } catch (Exception exception) { if (zkw != null) { zkw.close(); } throw exception; } } catch (Exception exception) { if (connection != null) { connection.close(); } if (exception instanceof IOException) { throw (IOException) exception; } else if (exception instanceof RuntimeException) { throw (RuntimeException) exception; } else { throw new IOException("Error initializing the replication admin client.", exception); } } }
/** * 删除指定表名 * * @param rowKey */ public void deleteTable(byte[] rowKey) { Connection conn = null; HBaseAdmin admin = null; try { conn = ConnectionFactory.createConnection(conf); admin = (HBaseAdmin) conn.getAdmin(); // 在删除一张表前,要使其失效 admin.disableTable(rowKey); admin.deleteTable(rowKey); admin.enableTable(rowKey); } catch (Exception e) { logger.error("HBaseAdmin deleteTable exception, errMsg:{}", e.getMessage()); } finally { try { if (null != admin) { admin.close(); } } catch (IOException e) { logger.error("HBaseAdmin close exception, errMsg:{}", e.getMessage()); } try { if (null != conn) { conn.close(); } } catch (Exception e) { logger.error("Connection close exception, errMsg:{}", e.getMessage()); } } }
/** 删除指定行 */ public static void deleteRow(byte[] rowKey) { Connection conn = null; HTable table = null; try { conn = ConnectionFactory.createConnection(conf); table = (HTable) conn.getTable(TableName.valueOf("test")); table.delete(new Delete(rowKey)); } catch (Exception e) { logger.error("HBaseAdmin deleteRow exception, errMsg:{}", e.getMessage()); } finally { if (null != table) { try { table.close(); } catch (IOException e) { logger.error("HTable close exception, errMsg:{}", e.getMessage()); } } if (null != conn) { try { conn.close(); } catch (Exception e) { logger.error("Connection close exception, errMsg:{}", e.getMessage()); } } } }
/** * 删除指定名称的列簇 * * @param tableName 表名 * @param columnFamilyName 列族 */ public static void deleteFamily(byte[] tableName, String columnFamilyName) { Connection conn = null; HBaseAdmin admin = null; try { conn = ConnectionFactory.createConnection(conf); admin = (HBaseAdmin) conn.getAdmin(); admin.deleteColumn(tableName, columnFamilyName); } catch (Exception e) { logger.error("HBaseAdmin deleteColumn exception, errMsg:{}", e.getMessage()); } finally { try { if (null != admin) { admin.close(); } } catch (IOException e) { logger.error("HBaseAdmin close exception, errMsg:{}", e.getMessage()); } try { if (null != conn) { conn.close(); } } catch (Exception e) { logger.error("Connection close exception, errMsg:{}", e.getMessage()); } } }
/** * 根据RowKey查询单行 * * @param rowKey * @return */ public static Result queryByRowKey(byte[] rowKey) { Result result = null; if (null == rowKey || rowKey.length < 0) { return result; } Connection conn = null; HTable table = null; try { conn = ConnectionFactory.createConnection(conf); table = (HTable) conn.getTable(TableName.valueOf("test")); result = table.get(new Get(rowKey)); } catch (Exception e) { logger.error("queryByRowKey exception, rowKey:{}, errMsg:{}", new String(rowKey), e); } finally { if (null != table) { try { table.close(); } catch (IOException e) { logger.error("HTable close exception, errMsg:{}", e.getMessage()); } } if (null != conn) { try { conn.close(); } catch (IOException e) { logger.error("Connection close exception, errMsg:{}", e.getMessage()); } } } return result; }
public static void main(String[] args) throws Exception { conf.set("hbase.zookeeper.quorum", "hadoop271.itversity.com"); conf.set("hbase.zookeeper.property.clientPort", "2181"); Connection connection = ConnectionFactory.createConnection(conf); Table table = connection.getTable(TableName.valueOf("demo")); Scan scan1 = new Scan(); ResultScanner scanner1 = table.getScanner(scan1); for (Result res : scanner1) { System.out.println(Bytes.toString(res.getRow())); System.out.println(Bytes.toString(res.getValue("cf1".getBytes(), "column1".getBytes()))); System.out.println(Bytes.toString(res.getValue("cf1".getBytes(), "column2".getBytes()))); } scanner1.close(); Put put = new Put("3".getBytes()); put.addColumn("cf1".getBytes(), "column1".getBytes(), "value1".getBytes()); put.addColumn("cf1".getBytes(), "column2".getBytes(), "value2".getBytes()); table.put(put); Get get = new Get("3".getBytes()); Result getResult = table.get(get); System.out.println("Printing colunns for rowkey 3"); System.out.println(Bytes.toString(getResult.getValue("cf1".getBytes(), "column1".getBytes()))); System.out.println(Bytes.toString(getResult.getValue("cf1".getBytes(), "column2".getBytes()))); scanner1 = table.getScanner(scan1); System.out.println("Before Delete"); for (Result res : scanner1) { System.out.println(Bytes.toString(res.getRow())); System.out.println(Bytes.toString(res.getValue("cf1".getBytes(), "column1".getBytes()))); System.out.println(Bytes.toString(res.getValue("cf1".getBytes(), "column2".getBytes()))); } scanner1.close(); Delete del = new Delete("3".getBytes()); table.delete(del); System.out.println("After Delete"); scanner1 = table.getScanner(scan1); for (Result res : scanner1) { System.out.println(Bytes.toString(res.getRow())); System.out.println(Bytes.toString(res.getValue("cf1".getBytes(), "column1".getBytes()))); System.out.println(Bytes.toString(res.getValue("cf1".getBytes(), "column2".getBytes()))); } scanner1.close(); table.close(); connection.close(); }
protected HTableDescriptor[] getTables(final Configuration configuration) throws IOException { HTableDescriptor[] htbls = null; try (Connection connection = ConnectionFactory.createConnection(configuration)) { try (Admin admin = connection.getAdmin()) { htbls = admin.listTables(); } } return htbls; }
public MultiThreadedAction( LoadTestDataGenerator dataGen, Configuration conf, TableName tableName, String actionLetter) throws IOException { this.conf = conf; this.dataGenerator = dataGen; this.tableName = tableName; this.actionLetter = actionLetter; this.connection = (ClusterConnection) ConnectionFactory.createConnection(conf); }
/** * Confirm ImportTsv via data in online table. * * @param dataAvailable */ private static void validateTable( Configuration conf, TableName tableName, String family, int valueMultiplier, boolean dataAvailable) throws IOException { LOG.debug("Validating table."); Connection connection = ConnectionFactory.createConnection(conf); Table table = connection.getTable(tableName); boolean verified = false; long pause = conf.getLong("hbase.client.pause", 5 * 1000); int numRetries = conf.getInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 5); for (int i = 0; i < numRetries; i++) { try { Scan scan = new Scan(); // Scan entire family. scan.addFamily(Bytes.toBytes(family)); if (dataAvailable) { ResultScanner resScanner = table.getScanner(scan); for (Result res : resScanner) { LOG.debug("Getting results " + res.size()); assertTrue(res.size() == 2); List<Cell> kvs = res.listCells(); assertTrue(CellUtil.matchingRow(kvs.get(0), Bytes.toBytes("KEY"))); assertTrue(CellUtil.matchingRow(kvs.get(1), Bytes.toBytes("KEY"))); assertTrue( CellUtil.matchingValue(kvs.get(0), Bytes.toBytes("VALUE" + valueMultiplier))); assertTrue( CellUtil.matchingValue(kvs.get(1), Bytes.toBytes("VALUE" + 2 * valueMultiplier))); // Only one result set is expected, so let it loop. verified = true; } } else { ResultScanner resScanner = table.getScanner(scan); Result[] next = resScanner.next(2); assertEquals(0, next.length); verified = true; } break; } catch (NullPointerException e) { // If here, a cell was empty. Presume its because updates came in // after the scanner had been opened. Wait a while and retry. } try { Thread.sleep(pause); } catch (InterruptedException e) { // continue } } table.close(); connection.close(); assertTrue(verified); }
private static void setup() { conf = HBaseConfiguration.create(); try { connection = ConnectionFactory.createConnection(conf); table = connection.getTable(TableName.valueOf(PropertyConstant.TABLENAME)); } catch (IOException e) { System.out.println("Error: while set up database configuration " + e); System.exit(-1); } }
/** * Create multiple Connection instances and initialize a thread pool executor * * @param conf configuration * @param noOfConnections total no of Connections to create * @throws IOException if IO failure occurs */ public MultiHConnection(Configuration conf, int noOfConnections) throws IOException { this.noOfConnections = noOfConnections; synchronized (this.connectionsLock) { connections = new Connection[noOfConnections]; for (int i = 0; i < noOfConnections; i++) { Connection conn = ConnectionFactory.createConnection(conf); connections[i] = conn; } } createBatchPool(conf); }
private Connection getUnsecuredHBaseClient(Configuration hbaseConf) throws InterruptedException, URISyntaxException, LoginException, IOException { SystemEnvironment systemEnvironment = new SystemEnvironment(); Configuration conf = HBaseConfiguration.create(hbaseConf); User user = UserProvider.instantiate(hbaseConf) .create( UserGroupInformation.createRemoteUser( systemEnvironment.getVariable(SystemEnvironment.KRB_USER))); return ConnectionFactory.createConnection(conf, user); }
public static void verifyMobRowCount( final HBaseTestingUtility util, final TableName tableName, long expectedRows) throws IOException { Table table = ConnectionFactory.createConnection(util.getConfiguration()).getTable(tableName); try { assertEquals(expectedRows, countMobRows(table)); } finally { table.close(); } }
protected synchronized Connection getConnection() { if (this.connection == null) { try { Connection connection = ConnectionFactory.createConnection(getConf()); setConnection(connection); } catch (IOException e) { LOG.fatal("Failed to establish connection.", e); } } return connection; }
public void initialise() throws IOException { Configuration conf = HBaseConfiguration.create(); conf.addResource(new Path(clientConfig)); conf.addResource(new Path("/etc/hadoop/conf/core-site.xml")); UserGroupInformation.setConfiguration(conf); UserGroupInformation.loginUserFromKeytab(user, keytabLocation); System.out.println(conf.toString()); connection = ConnectionFactory.createConnection(conf); }
public RegionPlacementMaintainer( Configuration conf, boolean enforceLocality, boolean enforceMinAssignmentMove) { this.conf = conf; this.enforceLocality = enforceLocality; this.enforceMinAssignmentMove = enforceMinAssignmentMove; this.targetTableSet = new HashSet<TableName>(); this.rackManager = new RackManager(conf); try { this.connection = ConnectionFactory.createConnection(this.conf); } catch (IOException e) { throw new RuntimeException(e); } }
@Before public void init() { conf = HBaseConfiguration.create(); try { conn = ConnectionFactory.createConnection(conf); admin = conn.getAdmin(); tn = TableName.valueOf(tableName); table = conn.getTable(tn); initData(); } catch (Exception e) { e.printStackTrace(); } }
public HBaseUtils( String quorum, boolean useKerberos, String keyTabUsername, String kerberosEnv, String keyTabFileLocation, int regions) throws IOException { this.regions = regions; conf.set("hbase.zookeeper.quorum", quorum); if (useKerberos) { conf.set("hadoop.security.authentication", "Kerberos"); conf.set("hbase.security.authentication", "Kerberos"); conf.set("hbase.master.kerberos.principal", "hbase/_HOST@" + kerberosEnv + ".YOURDOMAIN.COM"); conf.set( "hbase.regionserver.kerberos.principal", "hbase/_HOST@" + kerberosEnv + ".YOURDOMAIN.COM"); conf.set("hbase.client.keyvalue.maxsize", "-1"); UserGroupInformation.setConfiguration(conf); try { UserGroupInformation.loginUserFromKeytab( keyTabUsername + "@" + kerberosEnv + ".YOURDOMAIN.COM", keyTabFileLocation); valid = true; } catch (IOException e) { e.printStackTrace(); valid = false; } kerberosRefresher.scheduleAtFixedRate( () -> { try { UserGroupInformation ugi = UserGroupInformation.getLoginUser(); if (ugi == null) { Logger.error("KERBEROS GOT LOGGED OUT"); UserGroupInformation.loginUserFromKeytab( keyTabUsername + "@" + kerberosEnv + ".YOURDOMAIN.COM", keyTabFileLocation); } else { ugi.checkTGTAndReloginFromKeytab(); } } catch (IOException e) { e.printStackTrace(); } }, KERBEROS_EXPIRATION_HOURS, KERBEROS_EXPIRATION_HOURS, TimeUnit.HOURS); } else { valid = true; conf.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/hbase-unsecure"); } connection = ConnectionFactory.createConnection(conf); }
public static void main(String[] args) throws IOException { Configuration conf = HBaseConfiguration.create(); HBaseHelper helper = HBaseHelper.getHelper(conf); helper.dropTable("testtable"); helper.createTable("testtable", "colfam1", "colfam2"); System.out.println("Adding rows to table..."); helper.fillTable("testtable", 1, 10, 10, "colfam1", "colfam2"); Connection connection = ConnectionFactory.createConnection(conf); Table table = connection.getTable(TableName.valueOf("testtable")); // vv SingleColumnValueFilterExample SingleColumnValueFilter filter = new SingleColumnValueFilter( Bytes.toBytes("colfam1"), Bytes.toBytes("col-5"), CompareFilter.CompareOp.NOT_EQUAL, new SubstringComparator("val-5")); filter.setFilterIfMissing(true); Scan scan = new Scan(); scan.setFilter(filter); ResultScanner scanner = table.getScanner(scan); // ^^ SingleColumnValueFilterExample System.out.println("Results of scan:"); // vv SingleColumnValueFilterExample for (Result result : scanner) { for (Cell cell : result.rawCells()) { System.out.println( "Cell: " + cell + ", Value: " + Bytes.toString( cell.getValueArray(), cell.getValueOffset(), cell.getValueLength())); } } scanner.close(); Get get = new Get(Bytes.toBytes("row-6")); get.setFilter(filter); Result result = table.get(get); System.out.println("Result of get: "); for (Cell cell : result.rawCells()) { System.out.println( "Cell: " + cell + ", Value: " + Bytes.toString(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength())); } // ^^ SingleColumnValueFilterExample }
public static void main(String[] args) throws IOException { Configuration conf = HBaseClientHelper.loadDefaultConfiguration(); Connection connection = ConnectionFactory.createConnection(conf); try { Table table = connection.getTable(TableName.valueOf("testtable")); try { // 1 Put Put p = new Put(Bytes.toBytes("row1")); p.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("qual1"), Bytes.toBytes("val1")); table.put(p); // 2 Get Get g = new Get(Bytes.toBytes("row1")); Result r = table.get(g); byte[] value = r.getValue(Bytes.toBytes("colfam1"), Bytes.toBytes("qual1")); String valueStr = Bytes.toString(value); System.out.println("GET: " + valueStr); // 3 Scan Scan s = new Scan(); s.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("qual1")); ResultScanner scanner = table.getScanner(s); try { for (Result rr = scanner.next(); rr != null; rr = scanner.next()) { System.out.println("Found row: " + rr); } // The other approach is to use a foreach loop. Scanners are // iterable! // for (Result rr : scanner) { // System.out.println("Found row: " + rr); // } } finally { scanner.close(); } // Close your table and cluster connection. } finally { if (table != null) table.close(); } } finally { connection.close(); } }
@SuppressWarnings("deprecation") @Before public void setUp() throws Exception { HTableDescriptor desc = new HTableDescriptor(tableName); HColumnDescriptor hcd = new HColumnDescriptor(family); hcd.setMobEnabled(true); hcd.setMobThreshold(3L); hcd.setMaxVersions(4); desc.addFamily(hcd); admin = TEST_UTIL.getHBaseAdmin(); admin.createTable(desc); table = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration()) .getBufferedMutator(TableName.valueOf(tableName)); }
@Test(timeout = 60000) public void testPriorityRegionIsOpenedWithSeparateThreadPool() throws Exception { ThreadPoolExecutor exec = getRS().getExecutorService().getExecutorThreadPool(ExecutorType.RS_OPEN_PRIORITY_REGION); assertEquals(0, exec.getCompletedTaskCount()); HTableDescriptor htd = new HTableDescriptor(tableName); htd.setPriority(HConstants.HIGH_QOS); htd.addFamily(new HColumnDescriptor(HConstants.CATALOG_FAMILY)); try (Connection connection = ConnectionFactory.createConnection(HTU.getConfiguration()); Admin admin = connection.getAdmin()) { admin.createTable(htd); } assertEquals(1, exec.getCompletedTaskCount()); }
/** * Initialize any state for this DB. Called once per DB instance; there is one DB instance per * client thread. */ @Override public void init() throws DBException { if ("true".equals(getProperties().getProperty("clientbuffering", "false"))) { this.clientSideBuffering = true; } if (getProperties().containsKey("writebuffersize")) { writeBufferSize = Long.parseLong(getProperties().getProperty("writebuffersize")); } if (getProperties().getProperty("durability") != null) { this.durability = Durability.valueOf(getProperties().getProperty("durability")); } try { connection = ConnectionFactory.createConnection(config); } catch (java.io.IOException e) { throw new DBException(e); } if ((getProperties().getProperty("debug") != null) && (getProperties().getProperty("debug").compareTo("true") == 0)) { debug = true; } if ("false".equals(getProperties().getProperty("hbase.usepagefilter", "true"))) { usePageFilter = false; } columnFamily = getProperties().getProperty("columnfamily"); if (columnFamily == null) { System.err.println("Error, must specify a columnfamily for HBase table"); 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 { final TableName tName = TableName.valueOf(table); HTableDescriptor dsc = connection.getTable(tName).getTableDescriptor(); } catch (IOException e) { throw new DBException(e); } }