HBase 高可用集群详细图文安装部署
目录
一、HBase 安装部署
1.1 Zookeeper 正常部署
1.2 Hadoop 正常部署
1.3 HBase 安装
1.4 HBase 的配置文件
1.4.1 hbase-env.sh
1.4.2 hbase-site.xml
1.4.3 regionservers
1.4.4 创建目录
1.5 HBase 远程发送到其他节点
1.6 HBase 服务的启动
1.6.1 单点启动(推荐)
1.6.2 群启
1.6.2 停止服务
1.7 查看 HBase 页面
1.8 高可用(推荐)
二、HBase 集群扩缩容
- jdk 版本的支持参考: Apache HBase ™ Reference Guide
- 与 hadoop 的版本对应参考: Apache HBase ™ Reference Guide (向下滑到 4.1 章节)
一、HBase 安装部署
| 主机名称 | IP | 资源 | 部署角色 |
| hadoop01 | 192.168.170.136 | 2cpu 4G | master、regionserver |
| hadoop02 | 192.168.170.137 | 2cpu 4G | master、regionserver |
| hadoop03 | 192.168.170.138 | 2cpu 4G | regionserver |
1.1 Zookeeper 正常部署
首先保证 Zookeeper 集群的正常部署,并启动之。
安装教程:【Zookeeper 初级】02、Zookeeper 集群部署-CSDN博客
1.2 Hadoop 正常部署
Hadoop 集群的正常部署并启动。
安装教程:Hadoop YARN HA 集群安装部署详细图文教程_hadoop yarn部署-CSDN博客
1.3 HBase 安装
HBase 官方下载地址:Apache Download Mirrors
(base) [root@hadoop01 ~]# ls
hbase-2.5.6-bin.tar.gz# 解压 Hbase 到指定目录
(base) [root@hadoop01 ~]# tar -zxvf hbase-2.5.6-bin.tar.gz -C /bigdata/
(base) [root@hadoop01 ~]# cd /bigdata/
(base) [root@hadoop01 /bigdata]# mv hbase-2.5.6 hbase# 配置环境变量
(base) [root@hadoop01 /bigdata]# vim /etc/profile
# hbase
export HBASE_HOME=/bigdata/hbase
export PATH=$PATH:$HBASE_HOME/bin# 使用 source 让配置的环境变量生效
(base) [root@hadoop01 /bigdata]# source /etc/profile
1.4 HBase 的配置文件
1.4.1 hbase-env.sh
[root@hadoop01 /bigdata]# cd /bigdata/hbase/conf/
[root@hadoop01 /bigdata/hbase/conf]# vim hbase-env.sh # 关闭 hbase 自带zk,使用自己搭建的 zookeeper 集群
export HBASE_MANAGES_ZK=false
# 设定 hbase 的内存为 2G,生产环境中可开启设置
#export HBASE_HEAPSIZE=2G
# 增加系统环境配置, 必须在/etc/profile定义JAVA_HOME
source /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_381
# 存放 PID 文件的目录
export HBASE_PID_DIR=/bigdata/hbase/pids
# 避免 master 启动报错类冲突
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"
1.4.2 hbase-site.xml
[root@hadoop01 /bigdata/hbase/conf]# vim hbase-site.xml
<!-- hbase 在 hdfs 中的存储位置, 如果 hdfs 是 ha 模式, 那就把 hadoop01 换成逻辑集群名(比如我的是 mycluster,可在你的 hadoop 配置文件 core-site.xml 查看) 并且创建 hdfs-site.xml 软连接 --><!-- hbase 在 hdfs 中的存储位置 --><property><name>hbase.rootdir</name><value>hdfs://hadoop01/hbase</value></property><!-- 开启 hbase 的全分布式 --><property><name>hbase.cluster.distributed</name><value>true</value></property><!-- zookeeper 的端口号 --><property><name>hbase.zookeeper.property.clientPort</name><value>2181</value></property><!-- zookeeper 集群的主机名 --><property><name>hbase.zookeeper.quorum</name><value>hadoop01,hadoop02,hadoop03</value></property><!-- hbase 的临时文件存储路径 --><property><name>hbase.tmp.dir</name><value>/bigdata/hbase/tmpdata</value></property><!-- 开启配置防止 hmaster 启动问题 --><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property><!-- 监控页面端口 --><property><name>hbase.master.info.port</name><value>60010</value></property>
1.4.3 regionservers
[root@hadoop01 /bigdata/hbase/conf]# vim regionservers
hadoop01
hadoop02
hadoop03
1.4.4 创建目录
[root@hadoop01 ~]# mkdir -p /bigdata/hbase/tmpdata# 如果 hadoop 是集群模式(HA 模式),则执行以下步骤
(base) [root@hadoop01 ~]# ln -s /bigdata/hadoop/server/hadoop-3.2.4/etc/hadoop/core-site.xml /bigdata/hbase/conf/core-site.xml
(base) [root@hadoop01 ~]# ln -s /bigdata/hadoop/server/hadoop-3.2.4/etc/hadoop/hdfs-site.xml /bigdata/hbase/conf/hdfs-site.xml
1.5 HBase 远程发送到其他节点
[root@hadoop01 ~]# scp -r /bigdata/hbase 192.168.170.137:/bigdata/hbase
[root@hadoop01 ~]# scp -r /bigdata/hbase 192.168.170.138:/bigdata/hbase# 并修改 /etc/profile 环境变量(其他节点),同 1.3 的步骤一样
1.6 HBase 服务的启动
1.6.1 单点启动(推荐)
# 只启动本节点 master
hbase-daemon.sh start master# 启动所有从节点
hbase-daemon.sh start regionserver
1.6.2 群启
# 只启动本机器的 master 和所有机器的从节点, 不推荐, 推荐使用 daemon 脚本
start-hbase.sh[root@hadoop01 ~]# jps
1264 RunJar
2512 JournalNode
1442 RunJar
2212 DataNode
2789 DFSZKFailoverController
3189 ResourceManager
1734 QuorumPeerMain
3382 NodeManager
7368 HMaster
2028 NameNode
7614 HRegionServer
7711 Jps
1.6.2 停止服务
# 只停止本节点的 master 和所有节点的 regionserver
stop-hbase.sh
1.7 查看 HBase 页面
启动成功后,可以通过 “192.168.170.136:60010” 的方式来访问 HBase 管理页面,例如:

1.8 高可用(推荐)
在 HBase 中 HMaster 负责监控 HRegionServer 的生命周期,均衡 RegionServer 的负载,如果 HMaster 挂掉了,那么整个 HBase 集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。所以 HBase 支持对 HMaster 的高可用配置。
# 可以随意选择任意一个节点作为 Backup Master,这里我以 hadoop02节点
(base) [root@hadoop02 /bigdata/hbase/conf]# hbase-daemon.sh start master
(base) [root@hadoop02 /bigdata/hbase/conf]# jps
1570 DataNode
35123 Jps
1701 JournalNode
34694 HRegionServer
1865 DFSZKFailoverController
2009 ResourceManager
2121 NodeManager
1338 QuorumPeerMain
1466 NameNode
35050 HMaster
访问 Backup Master 页面:192.168.170.137:60010

刷新 hadoop01 页面:
至此 HBase 高可用集群部署完毕!
二、HBase 集群扩缩容
在新节点初始化并拷贝安装目录。
# 在新节点启动 master
hbase-daemon.sh start regionserver# 修改各节点的 conf/regionservers,增加新节点的 ip
vi conf/regionservers# 进入 hbase shell, 开启重新分配 region 数据, 这是hbase的一个周期性工作, 默认 5 分钟
hbase shell
balance_switch true# 执行命令查看当前 hbase 的负载均衡 balance 是否开启
# 注意这个命令没有写错, 不是 balance_switch status, status 是将 balance 状态强制转换为 false
balancer_enabled# 立即进行一次均衡操作
# 当前各节点的 region 数量可以在前端页面查看
balancer
上一篇文章:HBase 详细图文介绍-CSDN博客
相关文章:
HBase 高可用集群详细图文安装部署
目录 一、HBase 安装部署 1.1 Zookeeper 正常部署 1.2 Hadoop 正常部署 1.3 HBase 安装 1.4 HBase 的配置文件 1.4.1 hbase-env.sh 1.4.2 hbase-site.xml 1.4.3 regionservers 1.4.4 创建目录 1.5 HBase 远程发送到其他节点 1.6 HBase 服务的启动 1.6.1 单点…...
现代雷达车载应用——第2章 汽车雷达系统原理 2.6节 雷达设计考虑
经典著作,值得一读,英文原版下载链接【免费】ModernRadarforAutomotiveApplications资源-CSDN文库。 2.6 雷达设计考虑 上述部分给出了汽车雷达基本原理的简要概述。在雷达系统的设计中,有几个方面是必不可少的,它们决定了雷达系…...
【JVM从入门到实战】(五)类加载器
一、什么是类加载器 类加载器(ClassLoader)是Java虚拟机提供给应用程序去实现获取类和接口字节码数据的技术。 类加载器只参与加载过程中的字节码获取并加载到内存这一部分。 二、jdk8及之前的版本 类加载器分为三类: 启动类加载器-加载Ja…...
计算机毕业设计 基于Web的城市旅游网站的设计与实现 Java实战项目 附源码+文档+视频讲解
博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...
【人工智能革命】:AIGC时代的到来 | 探索AI生成内容的未来
🎥 屿小夏 : 个人主页 🔥个人专栏 : IT杂谈 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一. AIGC 技术的概述和发展趋势1.1 AIGC 技术的概述1.2 AIGC 技术的发展趋势 二. AIGC 与元宇…...
spring-boot-data-jpa、JPA实现分页
spring-boot-data-jpa、JPA实现分页 JPA越来越丰富了,下面使用springboot3.x实现JPA分页 通过传入PageRequest pageRequest PageRequest.of(page, size);到接口查询,返回Page拿到分页数据。 转自 https://lingkang.top/archives/jpa-shi-xian-fen-ye …...
云原生之深入解析如何在Kubernetes中快速启用Cgroup V2支持
一、cgroup v2 有哪些优势? Linux 中有两个 cgroup 版本:cgroup v1 和 cgroup v2。cgroup v2 是新一代的 cgroup API。Kubernetes 自 v1.25 起 cgroup2 特性正式 stable。cgroup v2 提供了一个具有增强资源管理能力的统一控制系统,cgroup v2…...
QT实现四则运算计算器
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);this->setMaximumSize(240,300);this->setMinimumSize(240,300);this->setWindowTitle("计算器&…...
mysql的redolog、undo、binlog的作用
概览: MySQL三大日志包括:undolog,redo log,binlog,它们分别有以下作用: undolog:是Innodb存储引擎事务生成的日志。用于事务的回滚和MVCC,保证了事务的原子性。 redo log&#x…...
京东大数据-10月京东咖啡机市场销售数据分析-销售额增长41%,德龙等海外头部品牌店铺数据分析
如今,咖啡已经成为了人们日常生活中流行的生活饮品之一,消费量较大。随着咖啡的受众人群越来越多,消费者们对咖啡品质的要求也愈来愈高,而咖啡品质除了受咖啡豆质量影响外,还受制作过程中煮泡时间、水温和物料数量等因…...
【Android12】WindowManagerService架构分析
Android WindowManagerService架构分析 WindowManagerService(以下简称WMS) 是Android的核心服务。WMS管理所有应用程序窗口(Window)的Create、Display、Update、Destory。 因为Android系统中只有一个WMS(运行在SystemServer进程),可以称其为…...
部署LVS的NET模式
实验准备 #负载调度器# 192.168.116.40 #内网 12.0.0.100 #外网 先添加双网卡 #web服务器# 192.168.116.20 #web1 192.168.116.30 #web2 #nfs共享服务# 192.168.116.10 #nfs systemctl stop firewalld setenforce 0 1.nfs共享文件 1…...
如何在Facebook Business Manager进行企业认证
Facebook Business Manager,简称BM,按照字面意思理解就是Facebook官方的商务管理平台,是供广告主团队去使用的一个管理工具。BM可以绑定Facebook公共主页、广告账户等一系列Facebook账号。通过BM,企业就可以在一个后台,…...
推荐一款好用的包含表格识别的OCR网站
在当今数字化的时代,文字和表格识别已经成为了许多行业的关键技术。无论是处理大量的纸质文档,还是从网络上收集数据,OCR(光学字符识别)技术都扮演着重要的角色。然而,对于许多用户来说,OCR软件…...
linux 块设备驱动程序介绍
Linux块设备驱动是Linux操作系统中用于处理块设备的设备驱动程序。块设备是指以固定大小的块单位进行访问的存储设备,例如硬盘、固态硬盘和USB存储设备等。 Linux块设备驱动负责管理块设备的读写操作,并将数据传输到相应的存储设备上。它还负责处理块设…...
知识付费小程序开发:构建个性化学习平台的技术实践
随着在线学习和知识付费的兴起,开发一款知识付费小程序成为了创新的热点之一。本文将通过使用Node.js、Express和MongoDB为例,演示如何构建一个基础的知识付费小程序后端,并实现用户认证和知识内容管理。 1. 初始化项目 首先,确…...
OpenCV极坐标变换函数warpPolar的使用
学更好的别人, 做更好的自己。 ——《微卡智享》 本文长度为1702字,预计阅读4分钟 前言 前阵子在做方案时,得了几张骨钉的图片,骨科耗材批号效期管理一直是比较麻烦的,贴RFID标签成本太高,所以一般考虑还是…...
类与接口常见面试题
抽象类和接口的对比 抽象类是用来捕捉子类的通用特性的。接口是抽象方法的集合。 从设计层面来说,抽象类是对类的抽象,是一种模板设计,接口是行为的抽象,是一种行为的规范。 相同点 接口和抽象类都不能实例化都位于继承的顶端…...
Windows mysql5.7 执行查询/开启/测试binlog---简易记录
前言:基于虚拟机mysql版本为5.7,增量备份测试那就要用到binlog… 简述:二进制日志(binnary log)以事件形式记录了对MySQL数据库执行更改的所有操作。 binlog是记录所有数据库表结构变更(例如CREATE、ALTER…...
文档安全加固:零容忍盗窃,如何有效预防重要信息外泄
文档安全保护不仅需要从源头着手,杜绝文档在使用和传播过程中产生的泄密风险,同时还需要对文档内容本身进行有效的保护。为了防范通过拷贝、截屏、拍照等手段盗窃重要文档内容信息的风险,迅软DSE加密软件提供了文档加密保护功能,能…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...
