使用HBase java api 在HBase数据库中创建命名空间和三个表 : 命名空间: company content relationship following 然后向表中插入多条数据 随后可以查询某个表的数据 或者执行全表查询的程序怎么编写
时间: 2024-10-22 08:26:08 浏览: 62
在HBase中,使用Java API操作数据库需要先引入HBase相关的jar包,并通过`Admin`类进行管理操作。以下是创建命名空间、表以及插入数据和查询的一般步骤:
1. 创建命名空间 (Namespace):
```java
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
// ... 初始化HBase连接
HBaseConfiguration config = HBaseConfiguration.create();
Admin admin = new Admin(config);
try {
// 创建命名空间 "company"
TableName nsName = TableName.valueOf("company");
admin.createNamespace(nsName);
} finally {
if (admin != null) {
admin.close();
}
}
```
2. 创建表 (Table):
```java
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.TableDescriptor;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
// ... 获取连接
Connection connection = ConnectionFactory.createConnection(config);
TableDescriptor tableDesc = TableDescriptorBuilder.newBuilder(TableName.valueOf("content"))
.setColumnFamily(ColumnFamilyDescriptor.of("cf")) // 假设列族名为"cf"
.build();
connection.getAdmin().createTable(tableDesc); // 对于其他表 "relationship" 和 "following", 同样操作
// 关闭连接
connection.close();
```
3. 插入数据:
```java
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Table;
// ... 重新获取连接并打开表
Connection conn = ConnectionFactory.createConnection(config);
Table table = conn.getTable(TableName.valueOf("content")); // 按需替换为对应的表名
// 插入一行数据示例
Put put = new Put(Bytes.toBytes("rowkey_1"));
put.addColumn(Bytes.toBytes("cf"), Bytes.toBytes("qualifier"), Bytes.toBytes("value"));
table.put(put);
// 关闭表和连接
table.close();
conn.close();
```
4. 查询数据和全表扫描:
```java
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.ScannerCallable;
import org.apache.hadoop.hbase.client.Table;
// ... 获取连接并打开表
Connection conn = ConnectionFactory.createConnection(config);
Table table = conn.getTable(TableName.valueOf("content"));
// 查询单行数据
Get get = new Get(Bytes.toBytes("rowkey_1"));
Result result = table.get(get);
// 全表扫描并打印结果
ScannerCallable scannerCallable = new ScannerCallable(table, Scan.create(), true);
ResultScanner scanner = null;
try {
scanner = conn.call(scannerCallable);
for (Result row : scanner) {
System.out.println(row);
}
} finally {
if (scanner != null) {
scanner.close();
}
table.close();
conn.close();
}
```
记得处理异常和资源关闭,上述代码仅为示例,实际使用时可能需要根据具体需求调整。
阅读全文