openEuler24.03 LTS下安装HBase集群

前提条件

  • 安装好Hadoop完全分布式集群,可参考:openEuler24.03 LTS下安装Hadoop3完全分布式

  • 安装好ZooKeeper集群,可参考:openEuler24.03 LTS下安装ZooKeeper集群

HBase集群规划

node2node3node4
MasterBackup Master
RegionServerRegionServerRegionServer

版本匹配查询

HBase与JDK版本

https://hbase.apache.org/book.html#java

在这里插入图片描述

HBase与Hadoop版本

https://hbase.apache.org/book.html#hbase.versioning

在这里插入图片描述

综合来看,hbase2.5.x对JDK8和Hadoop3.3.4都兼容,具体选择hbase2.5.3。

下载HBase

浏览器访问如下地址下载HBase安装包

https://archive.apache.org/dist/hbase/2.5.3/hbase-2.5.3-bin.tar.gz

上传到Linux的/opt/software目录

[liang@node2 software]$ ls | grep hbase
hbase-2.5.3-bin.tar.gz

解压

解压

[liang@node2 software]$ tar -zxvf hbase-2.5.3-bin.tar.gz -C /opt/module/

查看解压后文件

[liang@node2 software]$ cd /opt/module/
[liang@node2 module]$ ls | grep hbase
hbase-2.5.3
[liang@node2 module]$ cd hbase-2.5.3/
[liang@node2 hbase-2.5.3]$ ls
bin         conf  hbase-webapps  lib          NOTICE.txt  RELEASENOTES.md
CHANGES.md  docs  LEGAL          LICENSE.txt  README.txt
[liang@node2 hbase-2.5.3]$ pwd
/opt/module/hbase-2.5.3

设置环境变量

环境变量

[liang@node2 hbase-2.5.3]$ sudo vim /etc/profile.d/my_env.sh

添加内容

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

让环境变量生效

[liang@node2 hbase-2.5.3]$ source /etc/profile

配置hbase

配置hbase-env.sh

[liang@node2 hbase-2.5.3]$ cd $HBASE_HOME/conf/
[liang@node2 conf]$ vim hbase-env.sh

修改如下两个地方:

(1)去掉export HBASE_MANAGES_ZK=false一行前面的#注释,值修改为false

export HBASE_MANAGES_ZK=false

(2)去掉export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"一行前面的#号注释。

export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"

在这里插入图片描述

配置hbase-site.xml

[liang@node2 conf]$ vim hbase-site.xml

删除原有配置内容,添加如下配置

    <property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.zookeeper.quorum</name><value>node2,node3,node4</value></property><property><name>hbase.rootdir</name><value>hdfs://node2:8020/hbase</value></property><!-- 在分布式的情况下一定要设置,不然容易出现Hmaster起不来的情况 --><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property>

配置regionservers

[liang@node2 conf]$ vim regionservers

内容修改为如下主机名

node2
node3
node4

配置Master高可用

Master存在单点故障问题,生产环境有必要配置Master高可用,配置方法如下:

创建backup-masters文件

[liang@node2 conf]$ vim backup-masters

内容如下

node3

把node3当作HBase的备份Master。

分发到其他机器

分发安装包

[liang@node2 conf]$ xsync /opt/module/hbase-2.5.3

分发环境变量

sudo /home/liang/bin/xsync /etc/profile.d/my_env.sh

根据提示输入node2机器root账户的登录密码

分别让node3及node4的环境变量生效

[liang@node3 ~]$ source /etc/profile
[liang@node4 ~]$ source /etc/profile

启动集群

先启动hadoop和zookeeper,再启动hbase,注意这个启动顺序,否则会造成没有HMaster

[liang@node2 conf]$ hdp.sh start
[liang@node2 conf]$ zk.sh start
[liang@node2 conf]$ start-hbase.sh

jps查看进程

[liang@node2 conf]$ jpsall

结果

=============== node2 ===============
10112 HMaster
9426 NodeManager
8789 NameNode
10715 Jps
4173 QuorumPeerMain
10349 HRegionServer
9726 JobHistoryServer
8991 DataNode
=============== node3 ===============
5636 DataNode
6036 NodeManager
6868 HMaster
7205 Jps
5894 ResourceManager
3511 QuorumPeerMain
6652 HRegionServer
=============== node4 ===============
3216 QuorumPeerMain
5072 SecondaryNameNode
5666 HRegionServer
5284 NodeManager
5940 Jps
4902 DataNode

查看Web UI

浏览器查看Web UI界面

node2:16010

在这里插入图片描述

简单使用

# 进入hbase shell命令行
[liang@node2 conf]$ hbase shell# 创建表
hbase:001:0> create 't1','f1','f2'# 查看表
hbase:002:0> list# 退出hbase shell命令行
hbase:004:0> quit

操作过程

[liang@node2 conf]$ hbase shell
HBase Shell
Use "help" to get list of supported commands.
Use "exit" to quit this interactive shell.
For Reference, please visit: http://hbase.apache.org/2.0/book.html#shell
Version 2.5.3, rd385524561f771dcb402905c2bdcaeb4a8fecbdb, Wed Feb  1 09:01:02 UTC 2023
Took 0.0025 seconds
hbase:001:0> create 't1','f1','f2'
Created table t1
Took 2.7209 seconds
=> Hbase::Table - t1
hbase:002:0> list
TABLE
t1
1 row(s)
Took 0.0205 seconds
=> ["t1"]
hbase:003:0> quit
[liang@node2 conf]$

过程问题记录及解决

建表报错日志

hbase:002:0> create 'stu','info'ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yetat org.apache.hadoop.hbase.master.HMaster.checkServiceStarted(HMaster.java:2821)at org.apache.hadoop.hbase.master.MasterRpcServices.isMasterRunning(MasterRpcServices.java:1205)at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:392)at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133)at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:359)at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:339)查看hbase-liang-master-node2.log日志文件警告如下:
WARN  [RS-EventLoopGroup-1-2] concurrent.DefaultPromise: An exception was thrown by org.apache.hadoop.hbase.io.asyncfs.FanOutOneBlockAsyncDFSOutputHelper$4.operationComplete()
java.lang.IllegalArgumentException: object is not an instance of declaring classat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

成功解决步骤:

关闭进程:stop-hbase.sh关不掉进程,手动kill hbase进程

删除hdfs的/hbase目录

hdfs dfs -rm -r /hbase

删除zookeeper的/hbase

zkCli.sh
[zk: localhost:2181(CONNECTED) 0] ls /
[hbase, kafka, zookeeper]
[zk: localhost:2181(CONNECTED) 3] deleteall /hbase
[zk: localhost:2181(CONNECTED) 4] ls /
[kafka, zookeeper]
[zk: localhost:2181(CONNECTED) 5] quit

删除hbase logs文件

[liang@node2 module]$ same.sh rm -rf $HBASE_HOME/logs

修改hbase-env.sh

[liang@node1 conf]$ vim hbase-env.sh

取消export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"一行开头的注释(解决问题关键语句

在这里插入图片描述

验证

[liang@node1 hbase-2.4.11]$ hbase shell
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
SLF4J: Failed to load class "org.slf4j.impl.StaticMDCBinder".
SLF4J: Defaulting to no-operation MDCAdapter implementation.
SLF4J: See http://www.slf4j.org/codes.html#no_static_mdc_binder for further details.
HBase Shell
Use "help" to get list of supported commands.
Use "exit" to quit this interactive shell.
For Reference, please visit: http://hbase.apache.org/2.0/book.html#shell
Version 2.4.11, r7e672a0da0586e6b7449310815182695bc6ae193, Tue Mar 15 10:31:00 PDT 2022
Took 0.0017 seconds
hbase:001:0> list
TABLE
0 row(s)
Took 0.3598 seconds
=> []
hbase:002:0> create 't1','f1'
Created table t1
Took 2.2108 seconds
=> Hbase::Table - t1
hbase:003:0>

退出

[liang@node1 conf]$ stop-hbase.sh
stopping hbase..........
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[liang@node1 conf]$ 

均提示缺少日志是实现,因为之前重命名了日志文件,把日志文件改回来就好了。

mv /opt/module/hbase-2.4.11/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar.bak /opt/module/hbase-2.4.11/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar

进入hbase shell测试

[liang@node1 conf]$ hbase shell
2025-03-21 17:16:53,325 WARN  [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
HBase Shell
Use "help" to get list of supported commands.
Use "exit" to quit this interactive shell.
For Reference, please visit: http://hbase.apache.org/2.0/book.html#shell
Version 2.4.11, r7e672a0da0586e6b7449310815182695bc6ae193, Tue Mar 15 10:31:00 PDT 2022
Took 0.0014 seconds
hbase:001:0> create 't2','f1','f2'
Created table t2
Took 0.9881 seconds
=> Hbase::Table - t2
hbase:002:0> list
TABLE
t1
t2
2 row(s)
Took 0.0188 seconds
=> ["t1", "t2"]
hbase:003:0> quit
[liang@node1 conf]$

关闭HBase

先关闭hbase,再关闭zookeeper和hadoop

[liang@node2 conf]$ stop-hbase.sh
[liang@node2 conf]$ zk.sh stop
[liang@node2 conf]$ hdp.sh stop

如有需要,可点击查看:配套视频教程

完成!enjoy it!

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

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

相关文章

LVGL移植说明

https://www.cnblogs.com/FlurryHeart/p/18104596 参考&#xff0c;里面说明了裸机移植以及freeRTOS系统移植。 移植到linux https://blog.csdn.net/sunchao124/article/details/144952514

ubuntu虚拟机裁剪img文件系统

1. 定制文件系统前期准备 将rootfs.img文件准备好&#xff0c;并创建target文件夹2. 挂载文件系统 sudo mount rootfs.img target #挂载文件系统 sudo chroot target #进入chroot环境3. 内裁剪文件系统 增删裁剪文件系统 exit #退出chroot环境 sudo umount target…

esp826601s固件烧录方法(ch340+面包板)

esp826601s固件烧录方法&#xff08;ch340面包板&#xff09; 硬件 stm32f10c8t6&#xff0c;esp826601s,面包板&#xff0c;ch340(usb转ttl),st_link&#xff08;供电&#xff09; 接线 烧录时&#xff1a; stm32f10c8t6&#xff1a;gnd->负极&#xff0c; 3.3->正极…

Servlet 点击计数器

Servlet 点击计数器 引言 Servlet 是 Java 企业版&#xff08;Java EE&#xff09;技术中的一种服务器端组件&#xff0c;用于处理客户端请求并生成动态内容。本文将详细介绍如何使用 Servlet 实现一个简单的点击计数器&#xff0c;帮助读者了解 Servlet 的基本用法和原理。 …

LangChain vs. LlamaIndex:深入对比与实战应用

目录 引言LangChain 与 LlamaIndex 概述 什么是 LangChain&#xff1f;什么是 LlamaIndex&#xff1f;两者的核心目标与适用场景 架构与设计理念 LangChain 的架构设计LlamaIndex 的架构设计关键技术差异 核心功能对比 数据连接与处理查询与检索机制上下文管理能力插件与扩展性…

【Java中级】10章、内部类、局部内部类、匿名内部类、成员内部类、静态内部类的基本语法和细节讲解配套例题巩固理解【5】

❤️ 【内部类】干货满满&#xff0c;本章内容有点难理解&#xff0c;需要明白类的实例化&#xff0c;学完本篇文章你会对内部类有个清晰的认知 &#x1f495; 内容涉及内部类的介绍、局部内部类、匿名内部类(重点)、成员内部类、静态内部类 &#x1f308; 跟着B站一位老师学习…

内容中台:驱动多渠道营销的关键策略

在数字营销快速发展的今天&#xff0c;企业需要在多个渠道&#xff08;网站、社交媒体、移动应用等&#xff09;上同步管理内容。尽管网站仍是品牌展示的核心&#xff0c;但信息分散、多平台重复创建内容的问题&#xff0c;让营销人员面临巨大的管理挑战。 内容中台&#xff0…

SvelteKit 最新中文文档教程(17)—— 仅服务端模块和快照

前言 Svelte&#xff0c;一个语法简洁、入门容易&#xff0c;面向未来的前端框架。 从 Svelte 诞生之初&#xff0c;就备受开发者的喜爱&#xff0c;根据统计&#xff0c;从 2019 年到 2024 年&#xff0c;连续 6 年一直是开发者最感兴趣的前端框架 No.1&#xff1a; Svelte …

CMake 中的置变量

在 CMake 中&#xff0c;变量是存储和传递信息的重要方式。以下是一些常用的 CMake 变量&#xff0c;以表格形式列出&#xff0c;包括它们的名称、含义和常见用途&#xff1a; 变量名称含义常见用途CMAKE_CURRENT_SOURCE_DIR当前处理的 CMakeLists.txt 文件所在的源代码目录的…

深入解析C++类:面向对象编程的核心基石

一、类的本质与核心概念 1.1 类的基本定义 类是将**数据&#xff08;属性&#xff09;与操作&#xff08;方法&#xff09;**封装在一起的用户自定义类型&#xff0c;是面向对象编程的核心单元。 // 基础类示例 class BankAccount { private: // 访问控制string owner; …

介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用及数组讲解

Docker 是一种轻量级的容器化技术&#xff0c;能够让开发者将应用程序和其所有依赖项打包成一个独立的容器&#xff0c;实现快速部署和运行。以下是 Docker 的基本概念和优势&#xff1a; 基本概念&#xff1a; 镜像&#xff08;Image&#xff09;&#xff1a;镜像是一个只读的…

在msys2里面的mingw64下面编译quickjs

其实非常的简单&#xff0c;就是正常的make 和make install就行了&#xff0c;这里只是简单的做个编译过程记录。 打开开始--程序--里面的msys64里面的mingw64控制台窗口&#xff0c;切换到quickjs下载解压缩后的目录&#xff0c;执行make和make install ndyHP66G5 MINGW64 ~…

el-table实现表头带筛选功能,并支持分页查询

最开始尝试了下面方法&#xff0c;发现这种方法仅支持筛选当前页的数据&#xff0c;不符合产品要求 于是通过查询资料发现可以结合filter-change事件&#xff0c;当表格的筛选条件发生变化的时候会触发该事件&#xff0c;调接口获取符合条件的数据&#xff0c;实现如下 1、表格…

OpenCV 从入门到精通(day_03)

1. ROI切割 ROI&#xff1a;Region of Interest&#xff0c;翻译过来就是感兴趣的区域。什么意思呢&#xff1f;比如对于一个人的照片&#xff0c;假如我们要检测眼睛&#xff0c;因为眼睛肯定在脸上&#xff0c;所以我们感兴趣的只有脸这部分&#xff0c;其他都不care&#xf…

OpenGL进阶系列20 - OpenGL SuperBible - bindlesstex 例子学习

目录 一:概述: 二:相关API介绍 三:代码完整注释 一: 概述: 什么是无绑定纹理(bindless texture)?无绑定纹理是OpenGL的一项技术,旨在消除传统的纹理绑定操作。这项技术允许着色器直接访问纹理而不需要显式地将纹理绑定到某个纹理单元,从而减少了渲染管线中的开销…

Spring Security认证授权深度解析

一 Spring Security简介 Spring Security是Spring生态系统中的一个安全框架&#xff0c;主要用于处理认证(Authentication)和授权(Authorization)。它提供了一套完整的安全解决方案&#xff0c;可以轻松集成到Spring应用中。 二 核心概念 1. 认证(Authentication) 验证用户…

[学成在线]10-课程审核

课程审核 需求分析 根据模块需求分析&#xff0c;课程发布前要先审核&#xff0c;审核通过方可发布。下图是课程审核及发布的流程图&#xff1a; 为什么课程审核通过才可以发布呢&#xff1f; 这样做为了防止课程信息有违规情况&#xff0c;课程信息不完善对网站用户体验也不…

【SpringBoot + MyBatis + MySQL + Thymeleaf 的使用】

目录&#xff1a; 一&#xff1a;创建项目二&#xff1a;修改目录三&#xff1a;添加配置四&#xff1a;创建数据表五&#xff1a;创建实体类六&#xff1a;创建数据接口七&#xff1a;编写xml文件八&#xff1a;单元测试九&#xff1a;编写服务层十&#xff1a;编写控制层十一…

Elasticsearch索引的字段映射

目录 type String类型 text和keyword的区别 数值类型 日期类型 index doc_values fields analyzer store index_options ElasticSearch索引映射示例 Elasticsearch中的字段设置直接影响数据的存储、索引和查询行为。结合索引查询场景合理设置mapping信息可以起到提…

【已解决】实际参数列表和形式参数列表长度不同、java: 无法将类xxx中的构造器xxx应用到给定类型| lombok相关

idea运行maven项目时&#xff0c;报错这个&#xff08;如标题&#xff09; 解决方案记录&#xff1a; 找到了之前的、能运行成功不报错的 maven项目。参考其pom.xml文件中lombok相关部分&#xff0c;将<path>标签下的lombok加个版本号&#xff0c;就运行成功了&#xff1…