我是靠谱客的博主 天真皮卡丘,最近开发中收集的这篇文章主要介绍HBase入门系列(2)- HBase架构+集群部署基本架构集群部署,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

基本架构

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 中。所以在系统出现故障的时候,数据可以通过这个日志文件重
建。

集群部署

  1. 准备工作
    安装Hadoop集群并启动
    安装Zookeeper集群并启动
  2. 下载并配置
# 
wget https://mirror.bit.edu.cn/apache/hbase/1.6.0/hbase-1.6.0-bin.tar.gz
cd hbase-1.6.0/conf/
  1. 修改配置文件
# 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
  1. 启动停止
# 启动
bin/start-hbase.sh
# 停止
bin/stop-hbase.sh

在这里插入图片描述

  1. 访问WEB界面:http://192.168.58.201:16010/master-status
    在这里插入图片描述

最后

以上就是天真皮卡丘为你收集整理的HBase入门系列(2)- HBase架构+集群部署基本架构集群部署的全部内容,希望文章能够帮你解决HBase入门系列(2)- HBase架构+集群部署基本架构集群部署所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部