--- Hbase 简述
分布式,面向列的开源数据库
高可靠性,高性能,面向列,可伸缩的分布式数据系统
高可靠性: 安全性 对外服务可靠
高性能: 处理数据的速度 效率 集群所有机器的运算资源处理数据
面向列: 在hbase底层存储的所有的数据都是以key/value组成的字节数据
可伸缩性: 存储能力 运算能力 两者来看 通过添加节点来扩展存储容量和添加运算资源
用于存储海量的结构化或半结构 非结构化 的数据
即 结构化 非结构 数据系统
- 将数据存储在不同的机器上
- 利用不同机器处理并发请求
*** 特点
- 海量存储
- 列式存储
- 极易扩展
- 稀疏性
*** 应用场景
不适合使用
需要数据分析,比如报表(rowkey) 对sql支持不好
单表数据不超过千万(200万)
适合使用HBASE
单表数据超过千万 ,并发量还很高
数据分析需求弱 ,或者不需要那么灵活和实时
因此得出结论:Hbase 集群存储 数据量大 高并发 Hbase只适合做量大且维度并不是很复杂的场景 (当然可做 但是极其慢 固不建议)
--- 架构设计 流程
Client(客户端)
- 提供了访问hbase的接口
- 提供Cache提高了访问hbase的效率
Zookeeper
- 通过选举保证任何时候,集群中只有一个Master,Master与RegionServer 启动都会向Zookeeper注册
- 存储所有Region的寻址入口:索引表---Meta---所在服务器
- 实时监控RegionServer的上下线信息 并实时通知给Master
- 存储Hbase的 Schema(表结构) 和 Table元数据
注意:Region 一张大表的行范围数据(抽象)
Zookeeper的引入使得Master不再有单节点故障哦!!!
HMaster
- 为RegionServer分配Region数据
- 负责RegionServer的负载均衡
- 发现失效的 RegionServer 通过拆分LOG重新分配其上的region
- 管理用户对Table定义的各类DDL操作
HRegionServer
- 管理Master为其分配的region
- 处理来自客户端的读写请求
- 负责和底层HDFS的交互,存储数据到HDFS
- 负责Region变大以后的拆分
- 负责Storefile的合并工作 以及负载均衡相关的事
注:HMaster ( Hbase集群的 主节点 ) HRegionServer 管理 Region 的机器
切记: Hbase表中的数据全是以 K,V 形式存在
Key 是由 3 段构成:行,列,key
没有约束类型 以 byte[] 形式存储
--- 安装部署
- Hbase安装环境准备
- hbase安装详细步骤
- Hasee启停
1 Hbase安装环境准备
- 准备集群,集群中配置JDK环境
- 安装部署ZooKeeper集群并启动
- 集群节点时间同步
手动设置 : date -s "2020-08-30 13:14:00"
连接时间服务器 : ntpdate 0.asia.pool.ntp.org
4.HDFS集群正常运行
2 Hbase安装详细步骤
2.1 上传解压
[root@linux01]$ tar -zxvf hbase-2.2.5-bin.tar.gz -C /opt/apps/
2.2 修改配置
hbase-env.sh修改内容:注意放开注释
export JAVA_HOME=/opt/apps/jdk1.8.0_251
esc /ZK
export HBASE_MANAGES_ZK=false
hbase-site.xml修改内容
<configuration>
<!-- 指定hbase在HDFS上存储的路径 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://linux01:9000/hbase</value>
</property>
<!-- 指定hbase是分布式的 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 指定zk的地址,多个用“,”分割 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>linux01:2181,linux02:2181,linux03:2181</value>
</property>
</configuration>
regionservers 配置 启动集群中的Regionserver机器
linux01
linux02
linux03
集群分发
[root@linux01 apps]# scp -r hbase-2.2.5/ linux02:$PWD
[root@linux01 apps]# scp -r hbase-2.2.5/ linux03:$PWD
Hasee启停
bin目录下是一些可执行的命令
单节点 在机器上单节点启动
linux01机器 ---> bin>hbase-daemon.sh start master 启动主节点
linux02机器 ---> bin>hbase-daemon.sh start master 启动主节点 (备用 , 自带高可用)
linux01 机器---> bin>hbase-daemon.sh start regionserver 启动从节点
linux02 机器---> bin>hbase-daemon.sh start regionserver 启动从节点
linux03机器 ---> bin>hbase-daemon.sh start regionserver 启动从节点
一键启动
start-hbase.sh 一键启动整个集群
配置环境变量
vi /etc/profile
export JAVA_HOME=/opt/apps/jdk1.8.0_251
export HADOOP_HOME=/opt/apps/hadoop-3.2.1
export ZOOKEEPER_HOME=/opt/apps/zookeeper-3.4.6
export HBASE_HOME=/opt/apps/hbase-2.2.5
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin:$HBASE_HOME/bin
查看WEB页面
http://linux01:16010/