• 搭建HBase2.x完全分布式集群(CentOS 9 + Hadoop3.x)


    Apache HBase™是一个分布式、可扩展、大数据存储的Hadoop数据库。
    当我们需要对大数据进行随机、实时的读/写访问时,可以使用HBase。这个项目的目标是在通用硬件集群上托管非常大的表——数十亿行X数百万列。Apache HBase是一个开源、分布式、版本化的非关系数据库,模仿了Chang等人的谷歌Bigtable:A distributed Storage System for Structured Data。正如Bigtable利用谷歌文件系统提供的分布式数据存储一样,Apache HBase在Hadoop和HDFS之上提供了类似Bigtable的功能。

    HBase的部署模式包括:

    • 独立模式:HBase不使用HDFS,而是使用本地文件系统代替它在同一个JVM上运行所有HBase守护进程和本地ZooKeeper。

    • 分布模式

      • 伪分布式:所有守护进程都运行在单个节点上。
      • 完全分布式:守护进程分布在集群中的所有节点上。

    本文部署HBase集群的时候,需要依赖于Hadoop集群和Zookeeper集群。

    一、准备工作

    • 虚拟机相关:

      • VMware workstation 16:虚拟机 > vmware_177981.zip

        如果操作系统是win11或者win10家庭版,推荐使用VMware workstation 17版本,网盘地址为:虚拟机 > vmware_17。

      • CentOS Stream 9:虚拟机 > CentOS-Stream-9-latest-x86_64-dvd1.iso

    • JDK
      jdk1.8:JDK > jdk-8u261-linux-x64.tar.gz

      HBase版本与JDK版本

      在这里插入图片描述

    • Hadoop

      Hadoop 3.3.6:Hadoop > Hadoop 3.3.6.tar.gz

      HBase版本与Hadoop版本

      在这里插入图片描述

    • Zookeeper

      Zookeeper > apache-zookeeper-3.8.4-bin.tar.gz

    • HBase

      Hbase > hbase-2.5.8-bin.tar.gz

    • 辅助工具
      MobaXterm:MobaXterm_Portable_v24.0.zip

    本文相关资源可以在文末提供的百度网盘资源中下载,除了vmware(你懂的…),以上资源均来源于官网,MobaXterm是便捷式软件,无需安装。

    1. Hadoop安装

    参考: 搭建Hadoop3.x完全分布式集群(CentOS 9)

    2. Zookeeper安装

    参考:搭建Zookeeper完全分布式集群(CentOS 9 )

    3. 时钟同步

    在HBase集群中,各个节点之间的时间同步非常重要,如果各个节点的时间不一致,那么会出现写入数据的时间戳不一致或某些操作的顺序发生错误等问题,从而影响HBase集群的稳定性和正确性。因此,在部署HBase之前,需要为集群的各节点配置时间同步。

    1)安装Chrony

    在虚拟机hadoop1上运行如下命令安装时间同步工具Chrony。

    yum install chrony –y
    ssh hadoop2 "yum install chrony -y"
    ssh hadoop3 "yum install chrony -y"
    
    • 1
    • 2
    • 3

    2)启动Chrony服务

    在虚拟机hadoop1上运行如下命令启动时间同步工具Chrony的服务。

    systemctl start chronyd
    ssh hadoop2 "systemctl start chronyd"
    ssh hadoop3 "systemctl start chronyd"
    
    • 1
    • 2
    • 3

    3)查看Chrony服务运行状态

    在虚拟机hadoop1、 hadoop2和hadoop3查看Chrony服务的运行状态。

    systemctl status chronyd
    
    • 1

    4)配置Chrony服务端

    在虚拟机hadoop1执行vi /etc/chrony.conf命令编辑Chrony的配置文件chrony.conf,将Chrony默认使用的时钟源指定为中国国家授时中心,并且允许处于任意网段的Chrony客户端可以通过虚拟机hadoop1的Chrony服务端进行时间同步。在这里插入图片描述

    5)配置Chrony客户端

    分别在虚拟机hadoop2和虚拟机hadoop3执行vi /etc/chrony.conf命令编辑Chrony的配置文件chrony.conf,指定Chrony客户端进行时间同步的Chrony服务端。

    在这里插入图片描述

    6)重新启动Chrony服务

    在虚拟机hadoop1上运行如下命令重新启动时间同步工具Chrony的服务。

    systemctl restart chronyd
    ssh hadoop2 "systemctl restart chronyd"
    ssh hadoop3 "systemctl restart chronyd"
    
    • 1
    • 2
    • 3

    7)查看时钟源

    在虚拟机hadoop1上运行如下命令查看Chrony服务端和客户端的时钟源。

    chronyc sources -v
    ssh hadoop2 "chronyc sources -v"
    ssh hadoop3 "chronyc sources -v"
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    二、安装HBase

    1. 上传安装包

    将hbase-2.5.8-bin.tar.gz上传到hadoop1的/software目录。

    2. 安装HBase

    以解压方式安装HBase,将HBase安装到/opt目录。

    tar -zxvf /software/hbase-2.5.8-bin.tar.gz  -C /opt
    
    • 1

    3. 配置HBase系统环境变量

    在虚拟机hadoop1执行vi /etc/profile命令编辑系统环境变量文件profile,在该文件的底部添加如下内容。

    export HBASE_HOME=/opt/hbase-2.5.8
    export PATH=$PATH:$HBASE_HOME/bin
    
    • 1
    • 2

    执行source /etc/profile命令初始化系统环境变量使添加的HBase系统环境变量生效。

    三、配置HBase

    虚拟机HMasterHRegionServer
    hadoop1
    hadoop2
    hadoop3

    1. 配置文件介绍

    所有配置文件都位于 conf 目录中,需要保持集群中每个节点同步。

    • backup-masters

      默认情况下不存在。文件中添加运行备用HMaster进程的虚拟机主机名或IP。

    • hadoop-metrics2-hbase.properties

      用于连接HBase Hadoop的Metrics2框架

    • hbase-env.cmd和hbase-env.sh

      用于Windows和Linux/UNIX环境的脚本来设置HBase的工作环境,包括Java、Java选项和其他环境变量的位置。

    • h base-policy.xml

      它是一个RPC服务器使用的默认策略配置文件,根据文件配置内容对客户端请求进行授权决策。仅在启用HBase安全性时使用。

    • hbase-site.xml

      该文件指定覆盖HBase默认的配置选项。

      配置项说明
      hbase.tmp.dir本地文件系统的临时目录,默认目录在/tmp目录下,该目录会在系统重启后清空,所以需要注意该参数的值
      默认值为: j a v a . i o . t m p d i r / h b a s e − {java.io.tmpdir}/hbase- java.io.tmpdir/hbase{user.name}
      hbase.rootdirRegionServers使用的目录,指定了HBase的数据存放目录,该路径需要完全限定(full-qualified),比如需要指定一个9000端口的HDFS文件系统下的/hbase目录,应写成:hdfs://namenode.example.org:9000/hbase
      默认值:${hbase.tmp.dir}/hbase
      hbase.cluster.distributed是否分布式
      默认值:false
      hbase.zookeeper.quorum用逗号分隔的ZooKeeper集群中的服务器列表
      hbase.zookeeper.property.dataDir存放HBase自己管理的zookeeper的属性数据信息的目录
      zookeeper.znode.parent指定了HBase在ZooKeeper上使用的节点路径
      hbase.wal.provider配置WAL的实现方式:
      asyncfs:默认值。自hbase-2.0.0(hbase-1536、hbase-14790)以来新增。它构建在一个新的非阻塞dfsclient实现上。
      filesystem:这是hbase-1.x版本中的默认设置。它构建在阻塞的DFSClient上,并以经典的DFSClient管道模式写入副本。
      multiwal:由多个asyncfs或filesystem实例组成
    • log4j.properties

      通过log4j进行HBase日志记录的配置文件。修改这个文件中的参数可以改变HBase的日志级别。

    • regionservers

      包含HBase集群中运行的所有Region Server主机列表(默认情况下,这个文件包含单个条目localhost)。该文件是一个纯文本文件,每行是一个主机名或IP地址

    2. 配置HBase

    1)修改HBase配置文件hbase-env.sh

    HBase的配置文件hbase-env.sh主要用于配置HBase的运行环境。进入虚拟机hadoop1的/opt/hbase-2.5.8/conf目录,执行vi hbase-env.sh命令编辑配置文件hbase-env.sh,在文件的尾部添加如下内容。

    export HBASE_MANAGES_ZK=false
    export JAVA_HOME=/opt/jdk1.8.0_261
    
    • 1
    • 2

    HBASE_MANAGES_ZK 该配置项为true时,由HBase自己管理Zookeeper;否则,启动独立的Zookeeper

    2)修改HBase配置文件hbase-site.xml

    HBase的配置文件hbase-site.xml主要用于配置HBase的参数。进入虚拟机hadoop1的/opt/hbase-2.5.8/conf目录,执行vi hbase-site.xml命令编辑配置文件hbase-site.xml,将该文件的标签中的默认配置替换为如下内容。

    <property>
        <name>hbase.cluster.distributedname>
        <value>truevalue>
    property>
    <property>
        <name>hbase.rootdirname>
        <value>hdfs://hadoop1:9000/hbasevalue>
    property>
    <property>
        <name>hbase.tmp.dirname>
        <value>/opt/data/hbase/tmpvalue>
    property>
    <property>
        <name>zookeeper.znode.parentname>
        <value>/hbasevalue>
    property>
    <property>
        <name>hbase.zookeeper.property.dataDirname>
        <value>/opt/data/zookeeper/zkdatavalue>
    property>
    <property>
    	<name>hbase.zookeeper.quorumname>
    	<value>hadoop1:2181,hadoop2:2181,hadoop3:2181value>
    property>
    <property>
        <name>hbase.wal.providername>
        <value>asyncfsvalue>
    property>
    <property>
        <name>hbase.unsafe.stream.capability.enforcename>
        <value>falsevalue>
    property>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    3)修改HBase配置文件regionservers

    HBase的配置文件regionservers用于通过主机名指定运行Regionserver的计算机。由于这里在虚拟机hadoop2和hadoop3运行HRegionserver进程,执行 vi regionservers 命令编辑配置如下内容。

    hadoop2
    hadoop3
    
    • 1
    • 2

    4)分发HBase安装目录

    为了便捷地在虚拟机hadoop2和hadoop3安装和配置HBase,这里通过scp命令将虚拟机hadoop1的相关配置同步到两台主机。

    scp -r /opt/hbase-2.5.8 root@hadoop2:/opt/
    scp /etc/profile root@hadoop2:/etc/
    scp -r /opt/hbase-2.5.8 root@hadoop3:/opt/
    scp /etc/profile root@hadoop3:/etc/
    
    • 1
    • 2
    • 3
    • 4

    四、启动与测试

    1. 启动

    在hadoop1主机运行如下命令启动集群。

    1)启动hadoop

    start-all.sh
    
    • 1

    2)启动zookeeper

    xzkServer.sh start
    
    • 1

    3)启动hbase

    start-hbase.sh
    
    • 1

    2. 查看进程

    分别在hadoop1、hadoop2和hadoop3运行jps命令查看

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    3. 网页查看

    在这里插入图片描述

    4. shell测试

    进入hbase shell交互界面,查看集群状态、命名空间列表、表列表,最后退出交互界面

    hbase shell
    > status
    > list_namespace
    > list
    > exit
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    5. 关闭集群

    在hadoop1主机运行如下命令关闭集群。

    stop-hbase.sh     	 #关闭HBase集群
    xzkServer.sh stop 	 #关闭Zookeeper集群
    stop-all.sh			#关闭Hadoop集群
    
    • 1
    • 2
    • 3

    附、网盘资源

    链接:https://pan.baidu.com/s/1MSUdwbPArIAglQTDRhOjrg?pwd=jiau
    提取码:jiau

  • 相关阅读:
    TypeScript类型--泛型类型--泛型约束
    IDEA打开项目文件目录不见了
    利用C++开发一个迷你的英文单词录入和测试小程序-增强功能
    共轭梯度法(CG)详解
    UML--类图的表示
    MyBatis Generator 插件 详解自动生成代码
    数字化转型孕育而来的在线文档协同工具:Baklib知识库及帮助中心
    C++:指针:智能指针
    文盘Rust——子命令提示,提高用户体验 | 京东云技术团队
    C++并发编程实战 第二版 第二章
  • 原文地址:https://blog.csdn.net/tangyi2008/article/details/137960213