hbase批量插入json数据原生态
时间: 2023-10-30 11:05:37 浏览: 172
在 HBase 中批量插入 JSON 数据可以使用 HBase 的 Java API 来实现。下面是一个示例代码:
首先,确保已经导入 HBase 的 Java 客户端库。
```java
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class HBaseBulkInsert {
public static void main(String[] args) {
Configuration config = HBaseConfiguration.create();
config.set("hbase.zookeeper.quorum", "localhost"); // 设置 ZooKeeper 地址
config.set("hbase.zookeeper.property.clientPort", "2181"); // 设置 ZooKeeper 端口号
try (Connection connection = ConnectionFactory.createConnection(config)) {
Table table = connection.getTable(TableName.valueOf(Bytes.toBytes("your_table_name"))); // 替换为实际的表名
List<Put> puts = new ArrayList<>();
// 构造 JSON 数据,并将其转换为 Put 对象
String json1 = "{\"id\": \"1\", \"name\": \"John\", \"age\": 25}";
Put put1 = new Put(Bytes.toBytes("row1")); // 替换为实际的行键
put1.addColumn(Bytes.toBytes("cf"), Bytes.toBytes("json"), Bytes.toBytes(json1));
puts.add(put1);
String json2 = "{\"id\": \"2\", \"name\": \"Jane\", \"age\": 30}";
Put put2 = new Put(Bytes.toBytes("row2")); // 替换为实际的行键
put2.addColumn(Bytes.toBytes("cf"), Bytes.toBytes("json"), Bytes.toBytes(json2));
puts.add(put2);
// 批量插入数据
table.put(puts);
table.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
以上代码是一个简单的示例,可以在 HBase 中批量插入两条 JSON 数据。请根据实际情况替换相关参数,如 ZooKeeper 地址、端口号和表名,并根据需要构造更多的 Put 对象来插入更多的数据。
阅读全文