使用HBase java api 在HBase数据库中创建命名空间和三个表 : 命名空间: company content relationship following 然后向表中插入多条数据 随后可以查询某个表的数据 或者执行全表查询
时间: 2024-10-29 21:16:09 浏览: 31
Hbase笔记 —— 利用JavaAPI的方式操作Hbase数据库(往hbase的表中批量插入数据).pdf
5星 · 资源好评率100%
在HBase Java API中,首先你需要通过`HBaseAdmin`类连接到HBase集群并创建命名空间。这里是一个简单的步骤描述:
```java
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Admin;
public class HBaseNamespaceAndTable {
public static void main(String[] args) throws Exception {
// 设置HBase配置
Configuration config = HBaseConfiguration.create();
// 创建连接
Connection connection = ConnectionFactory.createConnection(config);
Admin admin = connection.getAdmin();
// 创建命名空间 (如果不存在)
String namespace = "company";
if (!admin.namespaceExists(namespace)) {
admin.createNamespace(TableName.valueOf(namespace));
System.out.println("Namespace " + namespace + " created.");
} else {
System.out.println("Namespace " + namespace + " already exists.");
}
// 创建表
TableName tableName1 = TableName.valueOf("content");
admin.createTable(tableName1);
System.out.println("Table " + tableName1.getNameAsString() + " created.");
TableName tableName2 = TableName.valueOf("relationship");
admin.createTable(tableName2);
System.out.println("Table " + tableName2.getNameAsString() + " created.");
TableName tableName3 = TableName.valueOf("following");
admin.createTable(tableName3);
System.out.println("Table " + tableName3.getNameAsString() + " created.");
// 插入数据 (这需要具体的RowKey、ColumnFamily和Qualifier以及对应的值)
Put put1 = new Put(Bytes.toBytes("row1"));
// ...添加内容列值...
Put put2 = new Put(Bytes.toBytes("row2"));
// ...添加关系列值...
// 同理为其他表插入数据
admin.put(tableName1, put1);
admin.put(tableName2, put2);
admin.put(tableName3, put3); // 假设put3对应"following"表
// 查询数据示例(根据行键)
Get get = new Get(Bytes.toBytes("row1"));
Result result = connection.getAdmin().get(tableName1, get);
// 打印结果...
// 全表扫描示例
Scan scan = new Scan();
Results results = connection.getAdmin().get(tableName1, scan);
for (Result row : results) {
// 处理每行数据...
}
// 关闭资源
admin.close();
connection.close();
}
}
```
阅读全文