📜  HBase教程(1)

📅  最后修改于: 2023-12-03 14:41:42.253000             🧑  作者: Mango

HBase教程

HBase是基于Hadoop平台的分布式列式存储系统,可用于管理大规模的结构化和半结构化数据。

安装

HBase的安装需要先安装Hadoop,并根据Hadoop的版本选择对应版本的HBase进行安装。

具体安装步骤请参考HBase官方文档

数据模型

HBase的数据模型非常简单,数据存储在表格中,表格由行和列组成。

  • 行:类似于关系型数据库中的记录。
  • 列:由列族和列修饰符两部分组成。
    • 列族:一个表可以包含多个列族,用于对列进行分组,一般具有相同的前缀。
    • 列修饰符:用于表示列族中的具体列。
HBase Shell

HBase提供了Shell命令行界面,方便我们进行操作。

  • 启动Shell:bin/hbase shell
  • 查看所有表格:list
  • 创建表格:create 'table_name', 'column_family'
  • 插入数据:put 'table_name', 'row_key', 'column_family:column_qualifier', 'value'
  • 查询数据:get 'table_name', 'row_key'
  • 删除数据:delete 'table_name', 'row_key', 'column_family:column_qualifier'
  • 删除表格:disable 'table_name',然后drop 'table_name'
Java API

HBase提供了Java API,可用于程序化地进行操作。

创建Configuration对象
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum", "localhost");
conf.set("hbase.zookeeper.property.clientPort", "2181");
创建表格
HBaseAdmin admin = new HBaseAdmin(conf);
HTableDescriptor tableDesc = new HTableDescriptor("table_name");
tableDesc.addFamily(new HColumnDescriptor("column_family"));
admin.createTable(tableDesc);
插入数据
HTable table = new HTable(conf, "table_name");
Put put = new Put(Bytes.toBytes("row_key"));
put.add(Bytes.toBytes("column_family"), Bytes.toBytes("column_qualifier"), Bytes.toBytes("value"));
table.put(put);
查询数据
HTable table = new HTable(conf, "table_name");
Get get = new Get(Bytes.toBytes("row_key"));
Result result = table.get(get);
byte[] value = result.getValue(Bytes.toBytes("column_family"), Bytes.toBytes("column_qualifier"));
删除数据
HTable table = new HTable(conf, "table_name");
Delete delete = new Delete(Bytes.toBytes("row_key"));
delete.deleteColumn(Bytes.toBytes("column_family"), Bytes.toBytes("column_qualifier"));
table.delete(delete);
删除表格
HBaseAdmin admin = new HBaseAdmin(conf);
admin.disableTable("table_name");
admin.deleteTable("table_name");
总结

HBase是一个非常强大的分布式列式存储系统,可以用于管理大规模的结构化和半结构化数据。我们可以使用HBase Shell或Java API进行操作。