概述
基本架构
HBase 的系统架构,包括客户端、ZooKeeper 服务器、HMaster 主服务器和 RegionServer。
HBase启动后的两大主进程:
客户端
客户端包含访问 HBase 的接口,是整个 HBase 系统的入口,使用者直接通过客户端操作 HBase。
HDFS
HDFS 为 HBase 提供最终的底层数据存储服务,同时为 HBase 提供高可用的支持。
RegionServer
RegionServer 主要负责响应用户的请求,向 HDFS 读写数据。RegionServer 是 HBase 中最核心的模块,其内部管理了一系列 Region 对象,每个 Region 由多个 HStore 组成,每个 HStore 对应表中一个列族的存储。
功能:
- 处理分批给它的 Region。
- 处理客户端读写请求。
- 刷新缓存到 HDFS 中。
- 处理 Region 分片。
- 执行压缩。
ZooKeeper
HBase 通过 Zookeeper 来做 Master 的高可用、RegionServer 的监控、元数据的入口以及集群配置的维护等工作。
HMaster
HMaster 是 HBase 集群中的主服务器,负责监控集群中的所有 RegionServer,并且是所有元数据更改的接口。
在分布式集群中,HMaster 服务器通常运行在 HDFS 的 NameNode上,HMaster 通过 ZooKeeper 来避免单点故障,在集群中可以启动多个 HMaster,但 ZooKeeper 的选举机制能够保证同时只有一个 HMaster 处于 Active 状态,其他的 HMaster 处于热备份状态。
功能:
- 管理用户对表的增、删、改、查操作。
- 管理 RegionServer 的负载均衡,调整 Region 的分布。
- Region 的分配和移除。
- 处理 RegionServer 的故障转移。
StoreFile
保存实际数据的物理文件,StoreFile 以 HFile 的形式存储在 HDFS 上。每个 Store 会有一个或多个 StoreFile(HFile),数据在每个 StoreFile 中都是有序的。
MemStore
写缓存,由于 HFile 中的数据要求是有序的,所以数据是先存储在 MemStore 中,排好序后,等到达刷写时机才会刷写到 HFile,每次刷写都会形成一个新的 HFile。
WAL
由于数据要经 MemStore 排序后才能刷写到 HFile,但把数据保存在内存中会有很高的概率导致数据丢失,为了解决这个问题,数据会先写在一个叫做 Write-Ahead logfile 的文件中,然后再写入 MemStore 中。所以在系统出现故障的时候,数据可以通过这个日志文件重
建。
集群部署
- 准备工作
安装Hadoop集群并启动
安装Zookeeper集群并启动 - 下载并配置
#
wget https://mirror.bit.edu.cn/apache/hbase/1.6.0/hbase-1.6.0-bin.tar.gz
cd hbase-1.6.0/conf/
- 修改配置文件
# hbase-env.sh
vim hbase-env.sh
#添加
# JAVA环境
export JAVA_HOME=/usr/
# 是否使用自带的ZK
export HBASE_MANAGES_ZK=false
# hbase-site.xml
vim hbase-site.xml
# 添加
<configuration>
<!--配置HBase根目录-->
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop001:9000/HBase</value>
</property>
<!--是否开启分布式-->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!--配置服务端口-->
<property>
<name>hbase.master.port</name>
<value>16000</value>
</property>
<!--配置ZK地址-->
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop001,hadoop002,hadoop003</value>
</property>
<!--配置ZK工作目录-->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/module/zookeeper-3.4.10/zkData</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property
</configuration>
# regionservers,配置存储服务的Hbase节点
vim regionservers
# 添加
hadoop001
hadoop002
hadoop003
# 软连接 hadoop 配置文件到 HBase
ln -s /opt/soft/hadoop-2.9.2/etc/hadoop/core-site.xml /opt/soft/hbase-1.6.0/conf/core-site.xml
ln -s /opt/soft/hadoop-2.9.2/etc/hadoop/hdfs-site.xml /opt/soft/hbase-1.6.0/conf/hdfs-site.xml
- 启动停止
# 启动
bin/start-hbase.sh
# 停止
bin/stop-hbase.sh
- 访问WEB界面:http://192.168.58.201:16010/master-status
最后
以上就是天真皮卡丘为你收集整理的HBase入门系列(2)- HBase架构+集群部署基本架构集群部署的全部内容,希望文章能够帮你解决HBase入门系列(2)- HBase架构+集群部署基本架构集群部署所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复