Java Code Examples for org.apache.hadoop.hbase.client.HBaseAdmin#listTableNames()
The following examples show how to use
org.apache.hadoop.hbase.client.HBaseAdmin#listTableNames() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: HBaseDDLHandler.java From bigdata-tutorial with Apache License 2.0 | 5 votes |
/** * list all table name * * @return * @throws Exception */ public List<String> listTables() throws Exception { HBaseAdmin admin = new HBaseAdmin(getConnPool().getConn()); List<String> tableNameList = new ArrayList<String>(); for (TableName tableName : admin.listTableNames()) { tableNameList.add(tableName.getNameAsString()); } return tableNameList; }
Example 2
Source File: MutableIndexReplicationIT.java From phoenix with Apache License 2.0 | 4 votes |
@Test public void testReplicationWithMutableIndexes() throws Exception { Connection conn = getConnection(); //create the primary and index tables conn.createStatement().execute( "CREATE TABLE " + DATA_TABLE_FULL_NAME + " (k VARCHAR NOT NULL PRIMARY KEY, v1 VARCHAR, v2 VARCHAR)"); conn.createStatement().execute( "CREATE INDEX " + INDEX_TABLE_NAME + " ON " + DATA_TABLE_FULL_NAME + " (v1)"); // make sure that the tables are empty, but reachable String query = "SELECT * FROM " + DATA_TABLE_FULL_NAME; ResultSet rs = conn.createStatement().executeQuery(query); assertFalse(rs.next()); //make sure there is no data in the table query = "SELECT * FROM " + INDEX_TABLE_FULL_NAME; rs = conn.createStatement().executeQuery(query); assertFalse(rs.next()); // make sure the data tables are created on the remote cluster HBaseAdmin admin = utility1.getHBaseAdmin(); HBaseAdmin admin2 = utility2.getHBaseAdmin(); List<String> dataTables = new ArrayList<String>(); dataTables.add(DATA_TABLE_FULL_NAME); dataTables.add(INDEX_TABLE_FULL_NAME); for (String tableName : dataTables) { HTableDescriptor desc = admin.getTableDescriptor(TableName.valueOf(tableName)); //create it as-is on the remote cluster admin2.createTable(desc); LOG.info("Enabling replication on source table: "+tableName); HColumnDescriptor[] cols = desc.getColumnFamilies(); assertEquals(1, cols.length); // add the replication scope to the column HColumnDescriptor col = desc.removeFamily(cols[0].getName()); col.setScope(HConstants.REPLICATION_SCOPE_GLOBAL); desc.addFamily(col); //disable/modify/enable table so it has replication enabled admin.disableTable(desc.getTableName()); admin.modifyTable(tableName, desc); admin.enableTable(desc.getTableName()); LOG.info("Replication enabled on source table: "+tableName); } // load some data into the source cluster table PreparedStatement stmt = conn.prepareStatement("UPSERT INTO " + DATA_TABLE_FULL_NAME + " VALUES(?,?,?)"); stmt.setString(1, "a"); // k stmt.setString(2, "x"); // v1 <- has index stmt.setString(3, "1"); // v2 stmt.execute(); conn.commit(); // make sure the index is working as expected query = "SELECT * FROM " + INDEX_TABLE_FULL_NAME; rs = conn.createStatement().executeQuery(query); assertTrue(rs.next()); assertEquals("x", rs.getString(1)); assertFalse(rs.next()); conn.close(); /* Validate that we have replicated the rows to the remote cluster */ // other table can't be reached through Phoenix right now - would need to change how we // lookup tables. For right now, we just go through an HTable LOG.info("Looking up tables in replication target"); TableName[] tables = admin2.listTableNames(); HTable remoteTable = new HTable(utility2.getConfiguration(), tables[0]); for (int i = 0; i < REPLICATION_RETRIES; i++) { if (i >= REPLICATION_RETRIES - 1) { fail("Waited too much time for put replication on table " + remoteTable .getTableDescriptor().getNameAsString()); } if (ensureAnyRows(remoteTable)) { break; } LOG.info("Sleeping for " + REPLICATION_WAIT_TIME_MILLIS + " for edits to get replicated"); Thread.sleep(REPLICATION_WAIT_TIME_MILLIS); } remoteTable.close(); }