tephra-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (TEPHRA-236) Replace deprecated HBase APIs HBaseAdmin and HTableDescriptor
Date Sat, 22 Jul 2017 10:14:00 GMT

    [ https://issues.apache.org/jira/browse/TEPHRA-236?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16097225#comment-16097225
] 

ASF GitHub Bot commented on TEPHRA-236:
---------------------------------------

Github user poornachandra commented on a diff in the pull request:

    https://github.com/apache/incubator-tephra/pull/45#discussion_r128894170
  
    --- Diff: tephra-hbase-compat-1.1-base/src/main/java/org/apache/tephra/hbase/SecondaryIndexTable.java
---
    @@ -56,17 +58,24 @@
       private static final byte[] secondaryIndexQualifier = Bytes.toBytes('r');
       private static final byte[] DELIMITER  = new byte[] {0};
     
    -  public SecondaryIndexTable(TransactionServiceClient transactionServiceClient, HTableInterface
hTable,
    -                             byte[] secondaryIndex) {
    +  public SecondaryIndexTable(TransactionServiceClient transactionServiceClient, Table
hTable,
    +                             byte[] secondaryIndex) throws IOException {
         secondaryIndexTableName = TableName.valueOf(hTable.getName().getNameAsString() +
".idx");
    -    HTable secondaryIndexHTable = null;
    -    try (HBaseAdmin hBaseAdmin = new HBaseAdmin(hTable.getConfiguration())) {
    +    Table secondaryIndexHTable = null;
    +    Connection conn  = null;
    +    try { 
    +      conn  = ConnectionFactory.createConnection(hTable.getConfiguration());
    +      Admin hBaseAdmin = conn.getAdmin();
           if (!hBaseAdmin.tableExists(secondaryIndexTableName)) {
             hBaseAdmin.createTable(new HTableDescriptor(secondaryIndexTableName));
           }
    -      secondaryIndexHTable = new HTable(hTable.getConfiguration(), secondaryIndexTableName);
    -    } catch (Exception e) {
    +      secondaryIndexHTable = conn.getTable(secondaryIndexTableName);
    +    } catch (Exception e) { 
           Throwables.propagate(e);
    +    } finally {
    +      if (conn != null) {
    +         conn.close();
    --- End diff --
    
    @bijugs The connection created in the constructor has to be closed after the table is
closed. Take a look at https://hbase.apache.org/1.1/apidocs/org/apache/hadoop/hbase/client/ConnectionFactory.html
for an example.


> Replace deprecated HBase APIs HBaseAdmin and HTableDescriptor
> -------------------------------------------------------------
>
>                 Key: TEPHRA-236
>                 URL: https://issues.apache.org/jira/browse/TEPHRA-236
>             Project: Tephra
>          Issue Type: Improvement
>            Reporter: Biju Nair
>            Assignee: Poorna Chandra
>            Priority: Minor
>
> {{HBaseAdmin}}, {{HTable}} and {{HTableDescriptor}} client APIs are deprecated/or marked
for internal use in HBase 1.0 and planned for removal in HBase 2.0. Need to replace these
classes with new ones provided in HBase. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message