【实验楼】HBASE教程——学习笔记

本文介绍了如何进行HBase环境搭建与配置,包括单机模式和伪分布模式,强调了HBase与Hadoop版本匹配的重要性,并提供了启动和停止HBase的命令。此外,还详细讲解了HBase的基本操作,如创建、列出、描述和删除表,以及数据的插入和查询。最后,简要介绍了HBase应用程序开发中涉及的主要类。
摘要由CSDN通过智能技术生成

本文首发在我的个人博客:https://jlice.top/p/7czq8/。欢迎大家前去参观,么么哒~

HBase环境搭建与配置

HBase解压即可使用。

【注意】伪分布模式下,HBase需要与Hadoop版本匹配,可以看HBase的lib里Hadoop的jar文件版本。

需要配置hbase-site.xml,可以使用自带的Zookeeper。

单机模式配置如下:

<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>file:///tmp/hbase-${user.name}/hbase</value>
    </property>
</configuration>

伪分布模式配置如下:

<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://localhost:9000/hbase</value>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
</configuration>

配置hbase-env.sh,需要设置JAVA_HOMEHBASE_MANAGES_ZK。使用自带的Zookeeper时,HBASE_MANAGES_ZK=true

启动HBase:start-hbase.sh,停止HBase:stop-hbase.sh

注意:若是伪分布模式,需要先启动HDFS。停止时先停HBase。

进入HBase Shell:hbase shell

HBase基本操作

显示帮助:help

显示状态:status

退出HBase:quit

创建新表:create '表名', '列族名'

列举表信息:listlist '表名'

获取表描述:describe '表名'

删除表:删除表之前,先disable表,再drop

检查表是否存在:exists '表名'

禁用表:disable '表名',启用表:enable '表名'

向表中插入数据:put '表名', '行', '列族:列', '值'

一次性扫描全表数据:scan '表名'

获取一行数据:get '表名', '行'

HBase应用程序开发

org.apache.hadoop.hbase包下常用类:

  • HBaseConfiguration HBase配置

  • HColumnDescriptor 列族描述符,指定列族相关信息

  • HTableDescriptor 表名描述符,指定表相关信息

org.apache.hadoop.hbase.client包下常用类:

  • HBaseAdmin HBase管理(判断表是否存在、创建表等)

  • HTable 表

  • Get 获取数据

  • Put 添加数据

  • Scan

  • Result

  • ResultScanner

创建表:

HBaseAdmin admin = new HBaseAdmin(conf);
HTableDescriptor tabDesc = new HTableDescriptor(tableName);
tabDesc.addFamily(new HColumnDescriptor(columnFamily));
admin.createTable(tabDesc);
Table tab = new HTable(conf, tableName);
Put p = new Put(Bytes.toBytes(row));
p.add(Bytes.toBytes(columnFamily), Bytes.toBytes(column), Bytes.toBytes(data));
tab.put(p);

获取、扫描数据:

HTable tab = new HTable(conf, tableName);
// get
Get g = new Get(Bytes.toBytes(row));
Result r= tab.get(g);
// scan
Scan s = new Scan();
ResultScanner rs = tab.getScanner(s);
for(Result rst:rs){
    ; // do something
}

删除表:

if(admin.tableExists(tableName)){
    admin.disableTable(tableName);
    admin.deleteTable(tableName);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值