【问题标题】:Truncate HBase table with Java in Hadoop 2.7.1在 Hadoop 2.7.1 中使用 Java 截断 HBase 表
【发布时间】:2016-02-18 09:16:17
【问题描述】:

我正在尝试用简单的 java 代码截断 HBase 表:

HBaseAdmin hbaseAdmin = new HBaseAdmin(new HadoopConfig());

但我得到“java.lang.reflect.InvocationTargetException”。 我看到 HBaseAdmin 构造函数已被弃用。

它适用于 Hadoop 2.2.0

【问题讨论】:

    标签: hadoop hbase ambari


    【解决方案1】:

    找到下面的代码sn-p在Java代码中截断HBase表,

    Configuration config = HBaseConfiguration.create();
    // Add custom config parameters here
    Connection connection = ConnectionFactory.createConnection(config);
    Admin admin = connection.getAdmin() 
    admin.truncateTable(TableName.valueOf("bigtable");
    admin.close();
    

    希望这会有所帮助!

    【讨论】:

    • 谢谢!现在我没有得到调用异常,而是“org.apache.hadoop.hbase.TableNotDisabledException”。
    • 我在截断之前禁用了表,它成功了。我会寻找一种方法来做到这一点,而不会自己禁用它。
    【解决方案2】:

    成功了,解决办法如下:

        Admin admin = null;
        Configuration config = HBaseConfiguration.create();
    
        // Add custom config parameters here
    
        Connection connection = ConnectionFactory.createConnection(config);
        try {
            admin = connection.getAdmin();
    
            for (String tableName : tableNames) {
                System.out.print("Truncate table " + tableName);
                try {
                    if (HBaseHelper.isTableExists(tableName)) {
                        if (admin.isTableDisabled(TableName.valueOf(tableName))) {
                            System.out.print("Table " + tableName + " was disabled. Enabling it...");
                            admin.enableTable(TableName.valueOf(tableName );
                        }
                        HBaseHelper.truncateTable(tableName);
                    }
                }
                catch (IOException e) {
                    System.out.print("Failed to truncate table " + tableName + "\nError Msg: " + e.getMessage());
                }
            }
        } catch (Exception e){
            System.out.print("Could not connect to HBase Admin. Error Msg: " + e.getMessage());
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-06
      • 2015-01-15
      • 2013-02-14
      • 1970-01-01
      相关资源
      最近更新 更多