更新时间:2024-08-03 GMT+08:00

使用REST接口操作HBase

功能简介

使用REST服务,传入对应host与port组成的url以及指定的tableName和jsonHTD,通过HTTP协议,进行查询表信息,修改表,创建表以及删除表的操作。

代码样例

  • 方法调用
    // Add a table with specified info.
    createTable(url, "testRest",
         "{\"name\":\"default:testRest\",\"ColumnSchema\":[{\"name\":\"cf1\"}," + "{\"name\":\"cf2\"}]}");
    
    // Add column family 'testCF1' if not exist, else update the 'VERSIONS' to 3.
     // Notes: The unspecified property of this column family will be updated to default value.
    modifyTable(url, "testRest",
         "{\"name\":\"testRest\",\"ColumnSchema\":[{\"name\":\"testCF1\"," + "\"VERSIONS\":\"3" + "\"}]}");
    
    // Describe specific Table.
    descTable(url, "default:testRest");
    
    // delete a table with specified info.
    deleteTable(url, "default:testRest",
         "{\"name\":\"default:testRest\",\"ColumnSchema\":[{\"name\":\"testCF\"," + "\"VERSIONS\":\"3\"}]}");
  • 查询表信息

    以下代码片段在“hbase-rest-example\src\main\java\com\huawei\hadoop\hbase\examples”包的“HBaseRestTest”类的descTable方法中。

    private void descTable(String url, String tableName) {
         String endpoint = "/" + tableName + "/schema";
         Optional<ResultModel> result = sendAction(url + endpoint, MethodType.GET, null);
         handleNormalResult((Optional<ResultModel>) result);
     }
  • 修改表信息

    以下代码片段在“hbase-rest-example\src\main\java\com\huawei\hadoop\hbase\examples”包的“HBaseRestTest”类的modifyTable方法中。

    private void modifyTable(String url, String tableName, String jsonHTD) {
         LOG.info("Start modify table.");
         String endpoint = "/" + tableName + "/schema";
         JsonElement tableDesc = new JsonParser().parse(jsonHTD);
    
         // Add a new column family or modify it.
         handleNormalResult(sendAction(url + endpoint, MethodType.POST, tableDesc));
     }
  • 创建表
    以下代码片段在“hbase-rest-example\src\main\java\com\huawei\hadoop\hbase\examples”包的“HBaseRestTest”类的createTable方法中。
    private void createTable(String url, String tableName, String jsonHTD) {
         LOG.info("Start create table.");
         String endpoint = "/" + tableName + "/schema";
         JsonElement tableDesc = new JsonParser().parse(jsonHTD);
    
         // Add a table.
         handleCreateTableResult(sendAction(url + endpoint, MethodType.PUT, tableDesc));
     }
  • 删除表
    以下代码片段在“hbase-rest-example\src\main\java\com\huawei\hadoop\hbase\examples”包的“HBaseRestTest”类的deleteTable方法中。
    private void deleteTable(String url, String tableName, String jsonHTD) {
         LOG.info("Start delete table.");
         String endpoint = "/" + tableName + "/schema";
         JsonElement tableDesc = new JsonParser().parse(jsonHTD);
    
         // delete a table.
         handleNormalResult(sendAction(url + endpoint, MethodType.DELETE, tableDesc));
     }