HBase是一個NoSQL數據庫,具有高性能、分布式、可擴展、強一致性等特點,支持存儲結構化或半結構化數據。
在HBase中,我們可以使用HBase Shell或Java API進行數據的增、刪、改、查。本文將講述如何使用Java API將JSON數據寫入HBase。
// 創建HBase連接配置對象 Configuration conf = HBaseConfiguration.create(); conf.set("hbase.zookeeper.quorum", "hadoopmaster"); // ZooKeeper地址 // 創建HBase連接對象 Connection connection = ConnectionFactory.createConnection(conf); // 獲取到HBase表對象 TableName tableName = TableName.valueOf("users"); Table table = connection.getTable(tableName); // 創建HBase行對象,并設置行鍵 String rowKey = "001"; Put put = new Put(Bytes.toBytes(rowKey)); // 定義JSON數據 String jsonData = "{\"name\": \"Tom\", \"age\": 22, \"address\": {\"province\": \"Shanghai\", \"city\": \"Shanghai\"}}"; // 將JSON數據轉換成HBase列族與列的值 JSONObject json = JSON.parseObject(jsonData); for (Map.Entryentry : json.entrySet()) { String column = entry.getKey(); String value = entry.getValue().toString(); put.addColumn(Bytes.toBytes("info"), Bytes.toBytes(column), Bytes.toBytes(value)); } // 寫入HBase表 table.put(put); // 關閉連接 table.close(); connection.close();
以上代碼會將一條JSON數據寫入名為users的HBase表中。其中,rowKey是HBase行鍵,可以根據業務需求自定義。jsonData是要寫入的JSON數據,可以通過任何方式獲取。這里將JSON數據轉換成HBase列族與列的值,寫入HBase表。