当前位置: 首页 > news >正文

HBase 集群搭建

文章目录

  • 安装前准备
    • 兼容性
    • 官方网址
  • 集群搭建
    • 搭建 Hadoop 集群
    • 搭建 Zookeeper 集群
    • 解压缩安装
    • 配置文件
    • 高可用配置
    • 分发 HBase 文件
  • 服务的启停
    • 启动顺序
    • 停止顺序
  • 验证进程
  • 查看 Web 端页面

安装前准备

兼容性

1)与 Zookeeper 的兼容性问题,越新越好,

Apache HBase ™ Reference Guide 官方回答:What version of ZooKeeper should I use?

The newer version, the better. ZooKeeper 3.4.x is required as of HBase 1.0.0

2)与 JDK 的兼容性问题,链接:hbase.apache.org/book.html#basic.prerequisites

HBase VersionJDK 6JDK 7JDK 8JDK 11
HBase 2.3+
HBase 2.0-2.2
HBase 1.2+
HBase 1.0-1.1
HBase 0.98
HBase 0.94

3)与 Hadoop 的兼容性问题,链接:Apache HBase ™ Reference Guide

Hadoop VersionHBase-2.3.xHBase-2.4.xHBase-2.5.x
Hadoop-2.10.[0-1]
Hadoop-2.10.2+
Hadoop-3.1.0
Hadoop-3.1.1+
Hadoop-3.2.[0-2]
Hadoop-3.2.3+
Hadoop-3.3.[0-1]
Hadoop-3.3.2+
  • ✅ = 经过测试,功能齐全
  • ❌ = 已知功能不全
  • ❗ = 未测试

官方网址

下载地址:Index of /dist/hbase (apache.org)

官方文档:Apache HBase ™ Reference Guide

中文文档:Hbase 中文文档

集群搭建

因为我的 Hadoop3.3.1 版本的,所以这里选择的是 HBase-2.4.16 版本搭建集群

搭建 Hadoop 集群

没有搭建可以参考:hadoop完全分布式搭建-CSDN博客

保证 Hadoop 集群的正常启动

./myhadoop.sh start

搭建 Zookeeper 集群

没有搭建可以参考:ZooKeeper 集群搭建-CSDN博客

保证 Zookeeper 集群的正常启动

./zk.sh start

解压缩安装

1)解压 Hbase,并重命名

tar -zxvf hbase-2.4.16-bin.tar.gz -C /opt/

2)配置环境变量

vim /etc/profile.d/hbase.sh

添加如下内容:

# HBASE_HOME
export HBASE_HOME=/opt/hbase-2.4.16
export PATH=$PATH:$HBASE_HOME/bin

3)使用 source 更新环境变量

source /etc/profile

配置文件

1)hbase-env.sh

vim $HBASE_HOME/conf/hbase-env.sh

修改内容:可以直接在第一行按 o 粘到第二行,也可以加到最后:

1)添加 JAVA_HOME、HADOOP_HOME环境变量;

2)让 Hbase 使用一个现有的不被 Hbase 托管的 Zookeep 集群;

3)将堆设置为 4GB(而不是默认值 1GB);

4)禁用 Hadoop 的类路径查找功能,类路径的查找可能会引发问题或冲突。

export JAVA_HOME=/usr/java/default
export HBASE_MANAGES_ZK=false
export HBASE_HEAPSIZE=4G
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true

2)hbase-site.xml

vim $HBASE_HOME/conf/hbase-site.xml

修改成如下内容:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><property><name>hbase.zookeeper.quorum</name><value>hadoop102,hadoop103,hadoop104</value><description>The directory shared by RegionServers.</description></property><property><name>hbase.rootdir</name><value>hdfs://hadoop102:9000/hbase</value><description>The directory shared by RegionServers.</description></property><property><name>hbase.cluster.distributed</name><value>true</value><description>The mode the cluster will be in. Possible values arefalse: standalone and pseudo-distributed setups with managed ZooKeepertrue: fully-distributed with unmanaged ZooKeeper Quorum (see hbase-env.sh)</description></property><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property>
</configuration>

3)regionservers

vim $HBASE_HOME/conf/regionservers

在此文件中列出将运行 RegionServers 的节点

hadoop102
hadoop103
hadoop104

4)解决 HBaseHadooplog4j 兼容性问题,将 Hadoopjar 包复制到 HBasejar

cp $HADOOP_HOME/share/hadoop/common/lib/slf4j-log4j12-1.7.30.jar $HBASE_HOME/lib/client-facing-thirdparty/slf4j-log4j12-1.7.30.jar
cp $HADOOP_HOME/share/hadoop/common/lib/slf4j-api-1.7.30.jar $HBASE_HOME/lib/client-facing-thirdparty/slf4j-api-1.7.30.jarmv $HBASE_HOME/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar $HBASE_HOME/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar.bak
mv $HBASE_HOME/lib/client-facing-thirdparty/slf4j-api-1.7.33.jar $HBASE_HOME/lib/client-facing-thirdparty/slf4j-api-1.7.33.jar.bak

高可用配置

HBaseHMaster 负责监控 HRegionServer 的生命周期,均衡 RegionServer 的负载,如果 HMaster 挂掉了,那么整个 HBase 集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。所以 HBase 支持对 HMaster 的高可用配置。

1)在 conf 目录下创建 backup-masters 文件

touch $HBASE_HOME/conf/backup-masters

2)在 backup-masters 文件中配置高可用 HMaster 节点

echo hadoop103 > $HBASE_HOME/conf/backup-masters

分发 HBase 文件

xsync $HBASE_HOME/

服务的启停

1)单点启动/停止服务

$HBASE_HOME/bin/hbase-daemon.sh start master
$HBASE_HOME/bin/hbase-daemon.sh start regionserver$HBASE_HOME/bin/hbase-daemon.sh stop master
$HBASE_HOME/bin/hbase-daemon.sh stop regionserver

2)集群启动/停止服务

$HBASE_HOME/bin/start-hbase.sh$HBASE_HOME/bin/stop-hbase.sh

启动顺序

zookeepeer➡hadoop➡hbase

./zk.sh start./myhadoop.sh startstart-hbase.sh

停止顺序

hbase➡hadoop➡zookeepeer

stop-hbase.sh./myhadoop.sh stop./zk.sh stop

验证进程

HQuorumPeer 进程是一个 ZooKeeper 实例,由 HBase 控制和启动。如果没有使用自己的 Zookeeper,而是使用 Hbase 托管的, 那么每个集群节点只能使用一个实例,并且仅适用于测试。

QuorumPeerMain 进程是 Zookeeper 独立的进程, ZooKeeperHBase 之外运行。

有关 ZooKeeper 配置的更多信息,包括使用 HBase 的外部ZooKeeper 实例,查看 zookeeper 文档。

hadoop102、hadoop103、hadoop104 jps Output 至少应该含有以下进程:

./jpsall=============== hadoop102 ===============
32673 HMaster
33457 Jps
24836 QuorumPeerMain
26555 HRegionServer
=============== hadoop103 ===============
24160 Jps
20241 HRegionServer
21018 HMaster
19709 QuorumPeerMain
=============== hadoop104 ===============
17744 QuorumPeerMain
18084 NodeManager
21260 Jps

查看 Web 端页面

默认情况下,它部署在主服务器的端口 16010 上(HBase RegionServer 默认情况下监听端口 16020,并在端口 16030 上放置一个信息 HTTP 服务器)。如果 Master 在默认端口上名为 hadoop102 的服务器上运行,将浏览器指向 hadoop102:16010 以查看 Web 界面。

同时在 HDFS 上也会创建一个 hbase 目录

HBase 启动后,可以查阅 shell exercises,了解如何创建表,添加数据,扫描插入,最后禁用和删除表。

# 进入 HBase 客户端命令行
hbase shell

相关文章:

HBase 集群搭建

文章目录 安装前准备兼容性官方网址 集群搭建搭建 Hadoop 集群搭建 Zookeeper 集群解压缩安装配置文件高可用配置分发 HBase 文件 服务的启停启动顺序停止顺序 验证进程查看 Web 端页面 安装前准备 兼容性 1&#xff09;与 Zookeeper 的兼容性问题&#xff0c;越新越好&#…...

大三了,C++还算可以从事什么岗位比较好?

大三了&#xff0c;C还算可以从事什么岗位比较好&#xff1f; 在开始前我有一些资料&#xff0c;是我根据自己从业十年经验&#xff0c;熬夜搞了几个通宵&#xff0c;精心整理了一份「c的资料从专业入门到高级教程工具包」&#xff0c;点个关注&#xff0c;全部无偿共享给大家…...

java 贪吃蛇游戏

前言 此实现较为简陋&#xff0c;如有错误请指正。 其次代码中的图片需要自行添加地址并修改。 主类 public class Main { public static void main(String[] args) { new myGame(); } } 1 2 3 4 5 游戏类 import javax.swing.*; import java.awt.eve…...

聊聊Java算法的时间复杂度

参考 o(1), o(n), o(logn), o(nlogn)_o&#xff08;1&#xff09;-CSDN博客算法时间复杂度的表示法O(n)、O(n)、O(1)、O(nlogn)等是什么意思&#xff1f;-CSDN博客 在描述算法复杂度时,经常用到o(1), o(n), o(logn), o(nlogn)来表示对应算法的时间复杂度, 这里进行归纳一下它…...

hive中array相关函数总结

目录 hive官方函数解释示例实战 hive官方函数解释 hive官网函数大全地址&#xff1a; hive官网函数大全地址 Return TypeNameDescriptionarrayarray(value1, value2, …)Creates an array with the given elements.booleanarray_contains(Array, value)Returns TRUE if the a…...

年终盘点文生图的狂飙之路,2023年文生图卷到什么程度了?

目录 前言发展1月2月3月4月5月6月7月9月10月11月12月 思考与总结参考文献 前言 说到文生图&#xff0c;可能有些人不清楚&#xff0c;但要说AI绘画&#xff0c;就有很多人直呼&#xff1a; 2022可以说是AI绘图大爆发的元年。 AI绘画模型可以分为扩散模型&#xff08;Diffusio…...

C++:list增删查改模拟实现

C:list增删查改模拟实现 前言一、list底层双链表验证、节点构造1.1 list底层数据结构1. 2 节点构造 二、迭代器封装实现&#xff08;重点、难点&#xff09;2.1 前置说明2.2 迭代器实现 三、list实现3.1 基本框架3.2 迭代器和const迭代器3.2 构造函数、析构函数、拷贝构造、赋值…...

基于阿里云服务网格流量泳道的全链路流量管理(二):宽松模式流量泳道

作者&#xff1a;尹航 在前文基于阿里云服务网格流量泳道的全链路流量管理&#xff08;一&#xff09;&#xff1a;严格模式流量泳道中&#xff0c;我们介绍了使用服务网格 ASM 的严格模式流量泳道进行全链路灰度管理的使用场景。该模式对于应用程序无任何要求&#xff0c;只需…...

ubuntu 18.04 共享屏幕

用于windows远程ubuntu 1. sudo apt install xrdp 2. 配置 sudo vim /etc/xrdp/startwm.sh 把最下面的test和exec两行注释掉&#xff0c;添加一行 gnome-session 3.安装dconf-editor : sudo apt-get install dconf-editor 关闭require encrytion org->gnome->desktop…...

第十三节TypeScript 元组

1、简介 我们知道数组中元素的数据类型一般都是相同的&#xff08;any[]类型的数组可以不同&#xff09;&#xff0c;如果存储的元素类型不同&#xff0c;则需要使用元组。 元组中允许存储不同类型的元素&#xff0c;元组可以作为参数传递给函数。2、创建元组的语法格式&#x…...

基于Java (spring-boot)的仓库管理系统

一、项目介绍 本系统的使用者一共有系统管理员、仓库管理员和普通用户这3种角色: 1.系统管理员&#xff1a;通过登录系统后&#xff0c;可以进行管理员和用户信息的管理、仓库和物品分类的管理&#xff0c;以及操作日志的查询&#xff0c;具有全面的系统管理权限。 2.仓库管理…...

SQL面试题挑战06:互相关注的人

目录 问题&#xff1a;SQL解答&#xff1a; 问题&#xff1a; 现在有一张relation表&#xff0c;里面只有两个字段&#xff1a;from_user和to_user&#xff0c;代表关注关系从from指向to&#xff0c;即from_user关注了to_user。现在要找出互相关注的所有人。 from_user to_…...

LSTM和GRU的区别

LSTM&#xff08;Long Short-Term Memory&#xff09;和GRU&#xff08;Gated Recurrent Unit&#xff09;都是循环神经网络&#xff08;RNN&#xff09;的变体&#xff0c;旨在解决传统RNN中的梯度消失和梯度爆炸的问题&#xff0c;使网络能够更好地处理长期依赖关系。 以下是…...

算法基础之数字三角形

数字三角形 核心思想&#xff1a;线性dp 集合的定义为 f[i][j] –> 到i j点的最大距离 从下往上传值 父节点f[i][j] max(f[i1][j] , f[i1][j1]) w[i][j] 初始化最后一层 f w #include <bits/stdc.h>using namespace std;const int N 510;int w[N][N],f[N][…...

蓝桥杯宝藏排序题目算法(冒泡、选择、插入)

冒泡排序: def bubble_sort(li): # 函数方式for i in range(len(li)-1):exchangeFalsefor j in range(len(li)-i-1):if li[j]>li[j1]:li[j],li[j1]li[j1],li[j]exchangeTrueif not exchange:return 选择排序: 从左往右找到最小的元素&#xff0c;放在起始位置…...

如何使用Docker部署Dashy并无公网ip远程访问管理界面

文章目录 简介1. 安装Dashy2. 安装cpolar3.配置公网访问地址4. 固定域名访问 简介 Dashy 是一个开源的自托管的导航页配置服务&#xff0c;具有易于使用的可视化编辑器、状态检查、小工具和主题等功能。你可以将自己常用的一些网站聚合起来放在一起&#xff0c;形成自己的导航…...

【接口测试】如何定位BUG的产生原因

我们从在日常功能测试过程中对UI的每一次操作说白了就是对一个或者多个接口的一次调用&#xff0c;接口的返回的内容(移动端一般为json)经过前端代码的处理最终展示在页面上。http接口是离我们最近的一层接口&#xff0c;web端和移动端所展示的数据就来自于这层&#xff0c;那么…...

JavaScript 中的短路求值(if语句简洁写法--逻辑运算符||和的高级用法)

在JavaScript中&#xff0c;Short-Circuit Evaluation&#xff08;短路求值&#xff09;是一种逻辑运算的行为&#xff0c;其中表达式的求值在达到不必要的部分时就提前终止&#xff08;所以短路一词非常贴切&#xff09;。这种行为可以通过逻辑运算符&#xff08;例如&&am…...

普本毕业,还有逆风翻盘的机会吗?

作为普通二本的本科生&#xff0c;从踏入大学开始&#xff0c;我一直在不断寻找自己感兴趣的行业和职业方向。 在这里&#xff0c;我想给大家分享一些我从校园走向工作整个学习和求职过程&#xff0c;以及其中的酸甜苦辣&#xff0c;希望这些经历可以给各位学弟学妹一些鼓励和…...

spark:RDD编程(Python版)

RDD运行原理 RDD设计背景 许多选代目前的MapReduce框架都是把中间结果写入到稳定存储 (比如磁盘)中带来了大量的数据复制、磁盘IO和序列化开销 RDD就是为了满足这种需求而出现的&#xff0c;它提供了一个抽象的数据架构&#xff0c;我们不必担心底层数据的分布式特性&#xf…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...

【Linux】自动化构建-Make/Makefile

前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具&#xff1a;make/makfile 1.背景 在一个工程中源文件不计其数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;mak…...

DBLP数据库是什么?

DBLP&#xff08;Digital Bibliography & Library Project&#xff09;Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高&#xff0c;数据库文献更新速度很快&#xff0c;很好地反映了国际计算机科学学术研…...

Unity中的transform.up

2025年6月8日&#xff0c;周日下午 在Unity中&#xff0c;transform.up是Transform组件的一个属性&#xff0c;表示游戏对象在世界空间中的“上”方向&#xff08;Y轴正方向&#xff09;&#xff0c;且会随对象旋转动态变化。以下是关键点解析&#xff1a; 基本定义 transfor…...

​​企业大模型服务合规指南:深度解析备案与登记制度​​

伴随AI技术的爆炸式发展&#xff0c;尤其是大模型&#xff08;LLM&#xff09;在各行各业的深度应用和整合&#xff0c;企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者&#xff0c;还是积极拥抱AI转型的传统企业&#xff0c;在面向公众…...

如何在Windows本机安装Python并确保与Python.NET兼容

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

python打卡day49@浙大疏锦行

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 一、通道注意力模块复习 & CBAM实现 import torch import torch.nn as nnclass CBAM(nn.Module):def __init__…...

Docker、Wsl 打包迁移环境

电脑需要开启wsl2 可以使用wsl -v 查看当前的版本 wsl -v WSL 版本&#xff1a; 2.2.4.0 内核版本&#xff1a; 5.15.153.1-2 WSLg 版本&#xff1a; 1.0.61 MSRDC 版本&#xff1a; 1.2.5326 Direct3D 版本&#xff1a; 1.611.1-81528511 DXCore 版本&#xff1a; 10.0.2609…...