NoSQL 数据库 HBase
- 5.1HBase 原理
- 5.1.1 HBase 概述
- 5.1.2 HBase 核心概念
- 5.1.3 HBase 的关键流程
- 5.2 HBase 伪分布式安装
- 5.2.1 安装 HBase 的前提条件
- 5.2.2 解压并配置环境变量
- 5.2.3 配置 HBase 参数
- 5.2.4 验证 HBase
- 5.3 HBase Shell
- 5.3.1 HBase Shell 常用命令
- 5.3.2 HBase Shell 综合示例
- 5.3.3 HBase Shell 全部命令
5.1HBase 原理
- 既可以存储结构化数据,也可以存储非结构化数据或半结构化数据
5.1.1 HBase 概述
HBase 是基于 Apache Hadoop 的面向列的 NoSQL 数据库,是 Google 的 BigTable 的开源实现。HBase 是一个针对半结构化数据的开源的、多版本的、可伸缩的、高可靠的、高性能的、分布式的和面向列的动态模式数据库。
5.1.2 HBase 核心概念
- HBase 是一个稀疏、多维度、有序的映射表。
表的每一行由一个或多个列族组成,一个列族中可以包含任意多个列。在同一个表模式下,每行所包含的列族是相同的,也就是说,列族的个数与名称都是相同的,但是每一行中的每个列族中列的个数可以不同,如图
- 数据模型的基本概念
Table
Row
Column
ColumnFamily
ColumnQualifier
Cell
Timestamp
- 表(Table)
- 行关键字
- 列关键字
- 列族
- 列限定符
- cell(单元格)
- 时间戳
- 两个视图
- 概念视图
- 物理视图
5.1.3 HBase 的关键流程
- Region的分配
- RegionSercer 上线
- RegionServer 下线
- Master 上线
- Master 下线
- 写请求处理过程
5.2 HBase 伪分布式安装
解压
配置环境变量
配置HBase参数
5.2.1 安装 HBase 的前提条件
Hadoop 已经安装并成功启动,如图:
5.2.2 解压并配置环境变量
- 解压
tar -xvf hbase-[版本号]-bin.tar.gz
- 配置环境变量
vi /etc/profile
- 使环境变量生效
source /etc/profile
5.2.3 配置 HBase 参数
- 配置hbase-env.sh
- 配置hbase-site.xml 添加以下内容
添加以下 代码
。
<configuration>
<property> <!--设置的是hdfs的文件目录-->
<name>hbase.rootdir</name>
<value>hdfs://master:8020/hbase</value>
</property>
<property> <!--集群模式,分布式true,单机模式false-->
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property> <!--zookeeper集群的URL配置-->
<name>hbase.zookeeper.quorum</name>
<value>master</value>
</property>
<property>
<name>zookeeper.znode.parent</name>
<value>/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/zk_data</value>
</property>
</configuration>
5.2.4 验证 HBase
- 启动HBase
conf/start-hbase.sh
2. 启动 hbase shell 命令
hbase shell
- 输入list (显示所有表)
- 浏览器验证 [http://192.168.9.3:16010]
- 查看 HDFS 文件系统
hadoop fs -ls /
- HBase 进程
jps
以上执行全部成功则 hbase 安装完成并运行正常
5.3 HBase Shell
- HBase 为用户提供了一个非常方便的命令行使用方式——HBase Shell。
- HBase Shell 提供了大多数的 HBase 命令,通过 HBase Shell,用户可以方便地创建、删除及修改表,还可以向表中添加数据,列出表中的相关信息等。
5.3.1 HBase Shell 常用命令
- create 命令
- list 命令
- describe 命令
- put 命令
- get 命令
- scan 命令
- count 命令
- exists 命令
- 修改表结构
- delete 命令
delete all 'scores' //删除全部数据
- truncate 命令 (清空表中数据,保留表结构)
truncate 'scores'
- disable、drop 命令
// 彻底删除表中数据和表结构-->先disable再drop
disable 'scores'
drop 'scores'
- status 命令
- version 命令
5.3.2 HBase Shell 综合示例
- 根据row key 查询
- row key + 列族
- row key + 列族+列
- 查看时间戳
- 根据版本查询
- 根据时间戳查询
- 删除列
- 删除行
- 统计记录条数
- 清空表
5.3.3 HBase Shell 全部命令
help //列出全部的 hbase shell 命令
general、 ddl 、namespace、 dml 、tool…