create 'userfollower','info1' put 'userfollower', '1001', 'info1:name', 'mary' put 'userfollower', '1001', 'info1:follower', 'Alice' put 'userfollower', '1002', 'info1:name', 'Jack' put 'userfollower', '1002', 'info1:follower1', 'Bob' put 'userfollower', '1002', 'info1:follower2', 'Ben' put 'userfollower', '1002', 'info1:likes', 'mary' put 'userfollower', '1003', 'info1:name', 'Alice' put 'userfollower', '1003', 'info1:likes', 'mary' put 'userfollower', '1004', 'info1:name', 'Bob' put 'userfollower', '1004', 'info1:likes', 'Jack' put 'userfollower', '1005', 'info1:name', 'Ben' put 'userfollower', '1005', 'info1:likes', 'Jack' get 'userfollower', '1002' delete 'userfollower', '1002', 'info1:follower1' delete 'userfollower', '1004', 'info1:likes' scan 'userfollower' disable 'userfollower' drop 'userfollower'
时间: 2023-08-29 11:05:12 浏览: 129
这是一个HBase的命令集合,用于创建、插入、查询、删除和删除表等操作。其中包括:
1. 创建了一个名为'userfollower'的表,该表有一个'info1'列族,然后向表中插入了一些数据。
2. 通过'get'命令查询了'1002'行的数据。
3. 通过'delete'命令删除了'1002'行中'info1:follower1'的数据,以及'1004'行中'info1:likes'的数据。
4. 通过'scan'命令扫描了整个'userfollower'表中的数据。
5. 最后通过'disable'和'drop'命令禁用并删除了'userfollower'表。
需要注意的是,这些命令是基于HBase的Shell命令而言的,如果你想在Java或其他语言中使用HBase进行操作,需要使用相应的API。
相关问题
Hbase API操作编写案例 假设你是用户部门员工,现需一张表用于存放用户粉丝数据表:userfollower,存:follower 粉丝有谁, followed 关注谁 1.建表 usertollower 2. 用户 Mary 有一个粉丝 Alice 3.用户 Jack 有两个粉丝 Bob 和 Ben 4. Jack 还关注了 Mary 5.查看Jack 被那些人关注,关注了谁 6. Bob 取关了 Jack 7. 扫描全表数据
可以使用 HBase Java API 实现上述需求,下面是示例代码:
```
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;
public class UserFollowerExample {
private static final String TABLE_NAME = "usertollower";
private static final String COLUMN_FAMILY_FOLLOWER = "follower";
private static final String COLUMN_FAMILY_FOLLOWED = "followed";
public static void main(String[] args) throws IOException {
Configuration config = HBaseConfiguration.create();
Connection connection = ConnectionFactory.createConnection(config);
Admin admin = connection.getAdmin();
TableName tableName = TableName.valueOf(TABLE_NAME);
// 1.建表 usertollower
if (!admin.tableExists(tableName)) {
admin.createTable(tableName, Bytes.toBytes(COLUMN_FAMILY_FOLLOWER), Bytes.toBytes(COLUMN_FAMILY_FOLLOWED));
}
Table table = connection.getTable(tableName);
// 2. 用户 Mary 有一个粉丝 Alice
Put put1 = new Put(Bytes.toBytes("Mary"));
put1.addColumn(Bytes.toBytes(COLUMN_FAMILY_FOLLOWER), Bytes.toBytes("Alice"), Bytes.toBytes(""));
table.put(put1);
// 3.用户 Jack 有两个粉丝 Bob 和 Ben
Put put2 = new Put(Bytes.toBytes("Jack"));
put2.addColumn(Bytes.toBytes(COLUMN_FAMILY_FOLLOWER), Bytes.toBytes("Bob"), Bytes.toBytes(""));
put2.addColumn(Bytes.toBytes(COLUMN_FAMILY_FOLLOWER), Bytes.toBytes("Ben"), Bytes.toBytes(""));
table.put(put2);
// 4. Jack 还关注了 Mary
Put put3 = new Put(Bytes.toBytes("Jack"));
put3.addColumn(Bytes.toBytes(COLUMN_FAMILY_FOLLOWED), Bytes.toBytes("Mary"), Bytes.toBytes(""));
table.put(put3);
// 5.查看Jack 被那些人关注,关注了谁
Get get = new Get(Bytes.toBytes("Jack"));
get.addFamily(Bytes.toBytes(COLUMN_FAMILY_FOLLOWER));
get.addFamily(Bytes.toBytes(COLUMN_FAMILY_FOLLOWED));
Result result = table.get(get);
System.out.println("Jack's followers:");
for (byte[] follower : result.getFamilyMap(Bytes.toBytes(COLUMN_FAMILY_FOLLOWER)).keySet()) {
System.out.println(Bytes.toString(follower));
}
System.out.println("Jack followed:");
for (byte[] followed : result.getFamilyMap(Bytes.toBytes(COLUMN_FAMILY_FOLLOWED)).keySet()) {
System.out.println(Bytes.toString(followed));
}
// 6. Bob 取关了 Jack
Delete delete = new Delete(Bytes.toBytes("Jack"));
delete.addColumn(Bytes.toBytes(COLUMN_FAMILY_FOLLOWER), Bytes.toBytes("Bob"));
table.delete(delete);
// 7. 扫描全表数据
Scan scan = new Scan();
ResultScanner scanner = table.getScanner(scan);
for (Result row : scanner) {
System.out.println("Row key: " + Bytes.toString(row.getRow()));
for (byte[] follower : row.getFamilyMap(Bytes.toBytes(COLUMN_FAMILY_FOLLOWER)).keySet()) {
System.out.println("Follower: " + Bytes.toString(follower));
}
for (byte[] followed : row.getFamilyMap(Bytes.toBytes(COLUMN_FAMILY_FOLLOWED)).keySet()) {
System.out.println("Followed: " + Bytes.toString(followed));
}
}
table.close();
admin.close();
connection.close();
}
}
```
注意:在运行代码之前需要先在 HBase 中创建表 usertollower,包含列族 follower 和 followed。
如何通过hbase通过idea操作api实现完成以下任务:假设你是用户部门员工,现需一张表用于存放用户粉丝数据。表:userfollow 存:follower粉丝有谁,followed关注谁。完成以下功能:1.建表userfollower 2.用户 Mary 有一个粉丝 Alice 3.用户Jack 有两个粉丝 Bob和Ben 4. Jack 还关注了 Mary 5.查看Jack 被那些人关注,关注了谁 6.Bob 取关了 Jack 7.扫描全表数据
好的,我会尽力回答您的问题。首先需要安装 HBase 和 Apache Maven,然后在 IntelliJ IDEA 中创建一个 Maven 项目。接下来,您需要在 Maven 项目中添加 HBase 依赖项,以便可以使用 HBase API 进行操作。可以通过在 pom.xml 文件中添加以下依赖项来实现:
```xml
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>{version}</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-common</artifactId>
<version>{version}</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-server</artifactId>
<version>{version}</version>
</dependency>
```
其中 `{version}` 是您使用的 HBase 版本号。
接下来,您可以按照以下步骤完成您的需求:
1. 建表 userfollower:
```java
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.TableDescriptor;
import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
import org.apache.hadoop.hbase.util.Bytes;
public class HBaseExample {
public static void main(String[] args) throws Exception {
// 创建 HBase 连接
Connection connection = ConnectionFactory.createConnection(HBaseConfiguration.create());
// 创建表描述符
TableDescriptor tableDescriptor = TableDescriptorBuilder.newBuilder(TableName.valueOf("userfollower"))
.build();
// 获取管理员实例
Admin admin = connection.getAdmin();
// 创建表
admin.createTable(tableDescriptor);
// 关闭连接
connection.close();
}
}
```
2. 用户 Mary 有一个粉丝 Alice:
```java
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.Put;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;
public class HBaseExample {
public static void main(String[] args) throws Exception {
// 创建 HBase 连接
Connection connection = ConnectionFactory.createConnection();
// 获取表实例
Table table = connection.getTable(TableName.valueOf("userfollower"));
// 创建 Put 对象
Put put = new Put(Bytes.toBytes("Mary"));
// 添加列族为 follower,列名为 Alice,值为 true
put.addColumn(Bytes.toBytes("follower"), Bytes.toBytes("Alice"), Bytes.toBytes("true"));
// 插入数据
table.put(put);
// 关闭连接
connection.close();
}
}
```
3. 用户 Jack 有两个粉丝 Bob 和 Ben:
```java
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.Put;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;
public class HBaseExample {
public static void main(String[] args) throws Exception {
// 创建 HBase 连接
Connection connection = ConnectionFactory.createConnection();
// 获取表实例
Table table = connection.getTable(TableName.valueOf("userfollower"));
// 创建 Put 对象
Put put = new Put(Bytes.toBytes("Jack"));
// 添加列族为 follower,列名为 Bob,值为 true
put.addColumn(Bytes.toBytes("follower"), Bytes.toBytes("Bob"), Bytes.toBytes("true"));
// 添加列族为 follower,列名为 Ben,值为 true
put.addColumn(Bytes.toBytes("follower"), Bytes.toBytes("Ben"), Bytes.toBytes("true"));
// 插入数据
table.put(put);
// 关闭连接
connection.close();
}
}
```
4. Jack 还关注了 Mary:
```java
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.Put;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;
public class HBaseExample {
public static void main(String[] args) throws Exception {
// 创建 HBase 连接
Connection connection = ConnectionFactory.createConnection();
// 获取表实例
Table table = connection.getTable(TableName.valueOf("userfollower"));
// 创建 Put 对象
Put put = new Put(Bytes.toBytes("Jack"));
// 添加列族为 followed,列名为 Mary,值为 true
put.addColumn(Bytes.toBytes("followed"), Bytes.toBytes("Mary"), Bytes.toBytes("true"));
// 插入数据
table.put(put);
// 关闭连接
connection.close();
}
}
```
5. 查看 Jack 被那些人关注,关注了谁:
```java
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
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.Get;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;
public class HBaseExample {
public static void main(String[] args) throws Exception {
// 创建 HBase 连接
Connection connection = ConnectionFactory.createConnection();
// 获取表实例
Table table = connection.getTable(TableName.valueOf("userfollower"));
// 创建 Get 对象
Get get = new Get(Bytes.toBytes("Jack"));
// 获取数据
Result result = table.get(get);
// 打印 follower 列族下的所有列
System.out.println("Jack 被以下人关注:");
for (Cell cell : result.getColumnCells(Bytes.toBytes("follower"), Bytes.toBytes("*"))) {
String follower = Bytes.toString(CellUtil.cloneQualifier(cell));
System.out.println(follower);
}
// 打印 followed 列族下的所有列
System.out.println("Jack 关注了以下人:");
for (Cell cell : result.getColumnCells(Bytes.toBytes("followed"), Bytes.toBytes("*"))) {
String followed = Bytes.toString(CellUtil.cloneQualifier(cell));
System.out.println(followed);
}
// 关闭连接
connection.close();
}
}
```
6. Bob 取关了 Jack:
```java
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.Delete;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;
public class HBaseExample {
public static void main(String[] args) throws Exception {
// 创建 HBase 连接
Connection connection = ConnectionFactory.createConnection();
// 获取表实例
Table table = connection.getTable(TableName.valueOf("userfollower"));
// 创建 Delete 对象
Delete delete = new Delete(Bytes.toBytes("Bob"));
// 删除 follower 列族下的 Jack 列
delete.addColumn(Bytes.toBytes("follower"), Bytes.toBytes("Jack"));
// 执行删除操作
table.delete(delete);
// 关闭连接
connection.close();
}
}
```
7. 扫描全表数据:
```java
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
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.Result;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;
public class HBaseExample {
public static void main(String[] args) throws Exception {
// 创建 HBase 连接
Connection connection = ConnectionFactory.createConnection();
// 获取表实例
Table table = connection.getTable(TableName.valueOf("userfollower"));
// 创建 Scan 对象
Scan scan = new Scan();
// 扫描全表数据
ResultScanner scanner = table.getScanner(scan);
// 遍历结果集
for (Result result : scanner) {
String rowKey = Bytes.toString(result.getRow());
// 打印 follower 列族下的所有列
System.out.println(rowKey + " 被以下人关注:");
for (Cell cell : result.getColumnCells(Bytes.toBytes("follower"), Bytes.toBytes("*"))) {
String follower = Bytes.toString(CellUtil.cloneQualifier(cell));
System.out.println(follower);
}
// 打印 followed 列族下的所有列
System.out.println(rowKey + " 关注了以下人:");
for (Cell cell : result.getColumnCells(Bytes.toBytes("followed"), Bytes.toBytes("*"))) {
String followed = Bytes.toString(CellUtil.cloneQualifier(cell));
System.out.println(followed);
}
}
// 关闭连接
connection.close();
}
}
```
以上就是通过 HBase API 在 IntelliJ IDEA 中操作 HBase 完成您的需求的示例代码。请根据您的实际情况进行修改和调整。
阅读全文