1、简介
1.1、概述
HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
1.2、官网
2、准备工作
2.1、安装 ZooKeeper
2.2、安装 Hadoop
2.3、HBase 与 Hadoop 版本匹配
3、HBase 下载
根据 HBase 与 Hadoop 版本匹配关系,我们下载 HBase 2.3.6 版本
4、HBase 安装
4.1、创建 hbase 相关目录
# 创建 hbase 应用目录
mkdir -p /home/app/hbase
# 创建 hbase 临时目录
mkdir -p /home/app/hbase/data/temp
4.2、解压 hbase 软件包
# 访问 hbase 应用目录
cd /home/app/hbase
# 解压 hbase 软件压缩包
tar -zxvf hbase-2.3.6-bin.tar.gz
4.3、配置环境变量
# 配置当前用户环境变量
vi ~/.bash_profile
# 在文件中添加如下命令,记得切换自己文件路径
export HBASE_HOME=/home/app/hbase/hbase-2.3.6
export PATH=$HBASE_HOME/bin:$PATH
# 立即生效
source ~/.bash_profile
4.4、hbase 配置
# 访问 hbase 配置文件目录
cd $HBASE_HOME/conf
4.5、hbase-env.sh
# 编辑 hbase-env.sh
vi hbase-env.sh
# 复制以下内容
# 设置 JAVA 环境变量
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64
# 禁用 HBASE 自带 ZK
export HBASE_MANAGES_ZK=false
4.6、hbase-site.xml
# 编辑 hbase-site.xml
vi hbase-site.xml
# 在文件中添加如下命令
<configuration>
<!-- hbase 以 standalone 模式运行时,依然会去启动自带的 zookeeper -->
<!-- 所以要做如下设置,值为 true -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:6001/hbase</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/home/app/hbase/data/temp</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<!-- ZooKeeper节点主机名 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>master</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/app/zookeeper/data/temp</value>
</property>
<!-- 连接时长 -->
<property>
<name>hbase.master.maxclockskew</name>
<value>120000</value>
</property>
</configuration>
5、HBase 启动
5.1、启动 & 停止
# 访问 hbase 命令文件目录
cd /home/app/hbase/hbase-2.3.6/bin
# hbase 启动
$HBASE_HOME/bin/start-hbase.sh
# hbase 停止
$HBASE_HOME/bin/stop-hbase.sh
5.2、HBase 访问
# 访问地址
http://IP:60010
6、HBase 验证
6.1、启动 HBase 命令终端
# 启动 HBase 命令终端
hbase shell
# 查看 HBase 状态
status
# 查看 HBase 版本
version
6.2、HBase 常用命令
6.2.1、创建表
# 创建表 woniu
create 'woniu','info'
# 查看表详情
describe 'woniu'
# 表是否存在
exists 'woniu'
6.2.2、添加数据
# 添加数据
put 'woniu','row1','info:name', 'xiaoming'
put 'woniu','row1','info:age', '18'
6.2.3、查询数据
# 根据 rowKey 查询某个记录所有数据
get 'woniu','row1'
# 根据 rowKey 查询某个记录某个字段数据
get 'woniu','row1','info:age'
# 查询所有记录
scan 'woniu'
# 扫描前 2 条记录
scan 'woniu', {LIMIT => 2}
# 统计表记录数
count 'woniu'
6.2.4、表列族维护
# 新增指定的列族
alter 'woniu', 'test'
# 列族中的数据存放 3 个版本
alter 'woniu', {NAME => 'test', VERSIONS => 3}
# 删除指定的列族
alter 'woniu', 'delete' => 'test'
6.2.5、删除数据
# 删除某 rowkey 的某一列数据
delete 'woniu','row1','info:age'
# 删除某 rowkey 的全部数据
deleteall 'woniu','row1'
# 清空表数据
truncate 'woniu'
6.2.6、禁用 & 启用
# 禁用表
disable 'woniu'
# 启用表
enable 'woniu'
6.2.7、删除表
# 第一步,使表无效
disable 'woniu'
# 第二步,删除表
drop 'woniu'
6.2.8、退出
# 退出
exit