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

news2025/1/15 23:08:01

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"

2)启动Chrony服务

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

systemctl start chronyd
ssh hadoop2 "systemctl start chronyd"
ssh hadoop3 "systemctl start chronyd"

3)查看Chrony服务运行状态

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

systemctl status chronyd

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"

7)查看时钟源

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

chronyc sources -v
ssh hadoop2 "chronyc sources -v"
ssh hadoop3 "chronyc sources -v"

在这里插入图片描述

二、安装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

3. 配置HBase系统环境变量

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

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

执行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

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,将该文件的<configuration>标签中的默认配置替换为如下内容。

<property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
</property>
<property>
    <name>hbase.rootdir</name>
    <value>hdfs://hadoop1:9000/hbase</value>
</property>
<property>
    <name>hbase.tmp.dir</name>
    <value>/opt/data/hbase/tmp</value>
</property>
<property>
    <name>zookeeper.znode.parent</name>
    <value>/hbase</value>
</property>
<property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/opt/data/zookeeper/zkdata</value>
</property>
<property>
	<name>hbase.zookeeper.quorum</name>
	<value>hadoop1:2181,hadoop2:2181,hadoop3:2181</value>
</property>
<property>
    <name>hbase.wal.provider</name>
    <value>asyncfs</value>
</property>
<property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
</property>

3)修改HBase配置文件regionservers

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

hadoop2
hadoop3

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. 启动

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

1)启动hadoop

start-all.sh

2)启动zookeeper

xzkServer.sh start

3)启动hbase

start-hbase.sh

2. 查看进程

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3. 网页查看

在这里插入图片描述

4. shell测试

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

hbase shell
> status
> list_namespace
> list
> exit

在这里插入图片描述

5. 关闭集群

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

stop-hbase.sh     	 #关闭HBase集群
xzkServer.sh stop 	 #关闭Zookeeper集群
stop-all.sh			#关闭Hadoop集群

附、网盘资源

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1608959.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Echarts-丝带图

Echarts-丝带图 demo地址 打开CodePen 什么是丝带图&#xff1f; 丝带图是Power BI中独有额可视化视觉对象&#xff0c;它的工具提示能展示指标当期与下期的数据以及排名。需求&#xff1a;使用丝带图展示"2022年点播订单表"不同月份不同点播套餐对应订单数据。 …

STM32直接存储器存取DMA

前提知识&#xff1a; 1、STM32F103内部存储器结构以及映射 STM32F103的程序存储器、数据存储器、寄存器和IO端口被组织在同一个4GB的线性地址空间内。数据字节以小端模式存放在存储器中。即低地址中存放的是字数据的低字节&#xff0c;高地址中存放的是字数据的高字节 可访问…

k8s部署Eureka集群

部署有状态负载 镜像配置&#xff1a; 环境变量如下&#xff1a; AUTHENTICATE_ENABLEtrue JAVA_OPTS-Dauth.userName账号 -Dauth.password密码 MY_POD_NAMEmetadata.name BOOL_REGISTERtrue BOOL_FETCHtrue APPLICATION_NAME负载名称 EUREKA_INSTANCE_HOSTNAME${MY_POD_NA…

Java基础之JVM基础调优与常见问题

常见命令 以下命令的介绍&#xff0c;全部在jdk8环境下运行的&#xff1b; jps ☆☆☆☆☆ 查看当前运行的进程号&#xff1b; jmap ☆☆☆ jmap命令可以查看jvm的内存信息&#xff0c;class对应的实例个数以及占用的内存大小 jmap -histo 查看当前java进程 [rdVM-8-12-c…

光伏无人机勘探技术应用分析

光伏无人机勘探与传统勘探想必&#xff0c;具有智能化作业、测控精度高、环境适应性强等明显优势&#xff1b;卫星勘探辅助其能更快速甚至实时完成测绘拼图&#xff1b;在进行勘察时&#xff0c;可根据需要自由更换机载设备&#xff1b;自动诗经建模使数据更直观&#xff0c;工…

Python 基于docker部署的Mysql备份查询脚本

前言 此环境是基于docker部署的mysql&#xff0c;docker部署mysql可以参考如下链接&#xff1a; docker 部署服务案例-CSDN博客 颜色块文件 rootbogon:~ 2024-04-18 16:34:23# cat DefaultColor.py ######################################################################…

stm32二刷-GPIO

一 什么是 GPIO: GPIO(general porpose intput output), 通用输入输出端口 . 二 我们先认识芯片控制 GPIO 输出控制。 2.1LED 硬件原理如图&#xff1a; 当电流从这根电线流通&#xff0c; LED 亮。当电流不通过这根电线&#xff0c; LED 灭。 上面 PF** &#xff0c;芯片电…

如何安全、高速、有效地利用IP代理爬取数据

陈老老老板&#x1f9d9;‍♂️ &#x1f46e;‍♂️本文专栏&#xff1a;生活&#xff08;主要讲一下自己生活相关的内容&#xff09;生活就像海洋,只有意志坚强的人,才能到达彼岸。 &#x1f934;本文简述&#xff1a;如何安全、高速、有效地利用IP代理爬取数据 &#x1f473…

HTX亮相迪拜Blockchain Life 2024:推动加密应用广泛落地

4月15-17日&#xff0c;HTX独家赞助于迪拜举办的Blockchain Life 2024峰会注册处&#xff0c;并以峰会蓝宝石赞助商身份亮相展区。 作为全球领先的头部交易所&#xff0c;HTX致力于推动区块链技术的创新与发展。此次赞助顶级加密峰会Blockchain Life 2024&#xff0c;不仅是对…

微信小程序酒店选择日期和入住人数(有效果图)

效果图 app.vue onLaunch:function(options){this.defaultcache()}defaultcache(){// 入住信息缓存var arr this.getDateTime();var ReserVation {reservType:0,//1 人数 2日期InCheckin:{},//入离日期peopleArr:[{title:成人,num:2},{title:儿童,num:0},{title:宝子,num:1…

外包干了6天,技术明显退步。。。

我是一名大专生&#xff0c;自19年通过校招进入湖南某软件公司以来&#xff0c;便扎根于功能测试岗位&#xff0c;一晃便是近四年的光阴。今年3月&#xff0c;我如梦初醒&#xff0c;意识到长时间待在舒适的环境中&#xff0c;已让我变得不思进取&#xff0c;技术停滞不前。更令…

Windows:web端UI自动化=python+selenium+pycharm框架

本篇写怎么写一个UI自动化代码。mac和Windows是一样的 都是这样写 不过&#xff0c;习惯用Windows了 如果python没有安装可以看我另一篇安装python的教程 先安装python先 下载完python 下载pip 1 安装pip $ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 下载…

k8s配置configmap指定到容器的指定文件

我们需要将名称为walletkey.properties的文件做成configmap&#xff0c;然后将walletkey.properties文件单独挂载出来到/data/walletkey.properties&#xff0c;且不能覆盖/data目录&#xff0c;具体如下 1、创建configmap configmap文件内容 其中walletkey.properties: >-引…

统一SQL-支持CHAR和VARCHAR2 (size BYTE|CHAR)转换

统一SQL介绍 https://www.light-pg.com/docs/LTSQL/current/index.html 源和目标 源数据库&#xff1a;Oracle 目标数据库&#xff1a;Postgresql&#xff0c;TDSQL-MySQL&#xff0c;达梦8&#xff0c;LightDB-Oracle 操作目标 在Oracle中的CHAR和VARCHAR2数据类型&…

【STM32HAL库】外部中断

目录 一、中断简介 二、NVIC 1.寄存器 2.工作原理 3.优先级 4.使用NVIC 三、EXTI 1.简介 2.AFIO&#xff1a;复用功能IO&#xff0c;主要用于重映射和外部中断映射配置​编辑 3. 中断使用 4.HAL库配置使用 一、中断简介 中断的意义&#xff1a;高效处理紧急程序&#xff0c;不会…

小程序 前端如何用wx.request获取 access_token接口调用凭据

在微信小程序中&#xff0c;获取access_token通常是通过wx.request方法来实现的。以下是一个简单的示例代码&#xff1a; 1.获取小程序的appID 与 secret&#xff08;小程序密钥&#xff09; 登录之后,请点击左侧的"开发管理">点击"开发设置" 就可以找…

【AI开发:音频】一、GPT-SoVITS整合工具包的部署问题解决(GPU版)

前言 目前GPT-SoVITS的合成效果比较不错&#xff0c;相比较其他厂商的产品要规整的多。众多厂家中也是国内使用最多的一款了&#xff0c;并且这个整合包里携带了&#xff0c;除背景音、切割、训练、微调、合成、低成本合成等一些列完整的工具&#xff0c;也可以作为API进行使用…

C++ | Leetcode C++题解之第38题外观数列

题目&#xff1a; 题解&#xff1a; class Solution { public:string countAndSay(int n) {string prev "1";for (int i 2; i < n; i) {string curr "";int start 0;int pos 0;while (pos < prev.size()) {while (pos < prev.size() &&…

iOS -- 工厂设计模式

iOS -- 工厂设计模式 设计模式概念设计模式七大准则简单工厂模式优点缺点主要作用示例 工厂方法模式优点缺点主要作用&#xff1a; 抽象工厂方法缺点主要作用&#xff1a;文件分类 设计模式概念 所谓设计模式&#xff08;Design pattern&#xff09; 是解决软件开发某些特定问…

深入理解JAVA垃圾收集器CMS,G1工作流程原理 GC流程图 什么社会触发Minor GC?触发MinorGC过程。Full GC 过程。

java CMS&#xff0c;G1垃圾收集器工作流程原理浅析 JVM内存空间基础知识点&#xff08;基于JDk1.8&#xff09; 1.方法区&#xff1a;逻辑概念&#xff0c;元空间&#xff0c;方法区主要用于存储类的信息、常量池、方法数据、方法代码等。方法区逻辑上属于堆的一部分&#xf…