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

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

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

相关文章

信息泄露总结

文章目录 一、备份文件下载1.1 网站源码1.2 bak文件泄露1.3 vim缓存1.4 .DS_Store 二、Git泄露2.1 git知识点2.1 log2.2 stash 三、SVN泄露3.1 SVN简介3.2 SVN的文件3.3 SVN利用 四、Hg泄露 一、备份文件下载 1.1 网站源码 常见的网站源码备份文件后缀&#xff1a; tartar.gz…

非阻塞 IO(NIO)

文章目录 非阻塞 IO(NIO)模型驱动程序应用程序模块使用 非阻塞 IO(NIO) 上一节中 https://blog.csdn.net/tyustli/article/details/135140523&#xff0c;使用等待队列头实现了阻塞 IO 程序使用时&#xff0c;阻塞 IO 和非阻塞 IO 的区别在于文件打开的时候是否使用了 O_NONB…

深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第五节 引用类型复制问题及用克隆接口ICloneable修复

深入浅出图解C#堆与栈 C# Heaping VS Stacking 第五节 引用类型复制问题及用克隆接口ICloneable修复 [深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第一节 理解堆与栈](https://mp.csdn.net/mdeditor/101021023)[深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第二节…

spdlog中的异步日志方案

日志方案 同步日志方案&#xff1a;立即输出日志记录的方案才能继续执行其他任务。 异步日志方案&#xff1a;先抛出一个日志记录的任务到某个地方&#xff0c;不马上执行打印也不影响往下执行其他任务。 二者关键区别是产生日志记录并调用相关的日志任务接口之后&#xff0…

【Kafka】Kafka客户端认证失败:Cluster authorization failed.

背景 kafka客户端是公司内部基于spring-kafka封装的spring-boot版本&#xff1a;3.xspring-kafka版本&#xff1a;2.1.11.RELEASE集群认证方式&#xff1a;SASL_PLAINTEXT/SCRAM-SHA-512经过多年的经验&#xff0c;以及实际验证&#xff0c;配置是没问题的&#xff0c;但是业务…

【JVM】虚拟机的组成+字节码文件组成+类的生命周期

什么是JVM&#xff1f; JVM 本质上是一个运行在计算机上的程序&#xff0c;他的职责是运行Java字节码文件。 JVM的功能 1.解释和运行&#xff1a;对字节码文件中的指令实时的解释成机器码让计算机执行。 2.内存管理&#xff1a;自动为对象、方法等分配内存&#xff0c;自动…

平升电子水库监管平台SQL注入漏洞复现

0x01 产品简介 唐山平升电子水库监管平台通过实时监测、数据分析、预警系统和远程控制等功能&#xff0c;为水库管理部门提供了一种全面、高效的数字化解决方案&#xff0c;帮助他们更好地管理和监控水库&#xff0c;确保水库的安全运行。 0x02 漏洞概述 唐山平升电子水库监…

sqlite3 c++ VS编译生成静态库

官网 https://www.sqlite.org/download.html 下载sqlite-amalgamation和x86版本下载sqlite-dll-win32-x86、x64位版本sqlite-dll-win64-x64 解压 SQLITE-AMALGAMATION包含 shell.csqlite3.csqlite3.hsqlite3ext.hsqlite-dll-win32-x86包含 sqlite3.def sqlite3.dll建立一个空…

Prometheus-JVM

一. JVM监控 通过 jmx_exporter 启动端口来实现JVM的监控 Github Kubernetes Deployment Java 服务&#xff0c;修改 wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.19.0/jmx_prometheus_javaagent-0.19.0.jar# 编写配置文件&#xff0…

limit查询报错问题

分页时候 limit 后面的公式是 (pageNum-1)*pageSize,pageSize 但是在数据库查询时候 当然在.XML中也不能像下面这么写,如果要计算 在业务层或者控制层计算好再传值进来

c++ / day01

1. 整理思维导图 2. 定义自己的命名空间myspace&#xff0c;并在myspace中定义一个字符串&#xff0c;实现求字符串大小的函数。 代码 #include <iostream>using namespace std;namespace myns {unsigned long long strlen(string s){return s.length();}}int main() {…

Chatgpt如何共享可以防止封号!

ChatGPT 是一个基于 GPT-3.5/GPT-4 模型的对话系统&#xff0c;它主要用于处理自然语言对话。通过训练模型来模拟人类的语言行为&#xff0c;ChatGPT 可以通过文本交流与用户互动。每个新版本的 GPT 通常都会在模型规模、性能和其他方面有一些改进。在目前免费版GPT-3.5 中&…

CNVD原创漏洞审核和处理流程

一、CNVD原创漏洞审核归档和发布主流程 &#xff08;一&#xff09;审核和归档流程 审核流程分为一级、二级、三级审核&#xff0c;其中一级审核主要对提交的漏洞信息完整性进行审核&#xff0c;漏洞符合可验证&#xff08;通用型漏洞有验证代码信息或多个互联网实例、事件型…

Tekton

一. 概念 Tekton 官网 Github Tekton 是一种用于构建 CI/CD 管道的云原生解决方案&#xff0c;它由提供构建块的 Tekton Pipelines&#xff0c;Tekton 作为 Kubernetes 集群上的扩展安装和运行&#xff0c;包含一组 Kubernetes 自定义资源&#xff0c;这些资源定义了您可以为…

Ubuntu 20.04使用Livox Mid-360

参考文章&#xff1a; Ubuntu 20.04使用Livox mid 360 测试 FAST_LIO-CSDN博客 一&#xff1a;Livox mid 360驱动安装与测试 前言&#xff1a; Livox mid360需要使用Livox-SDK2&#xff0c;而非Livox-SDK&#xff0c;以及对应的livox_ros_driver2 。 1. 安装Livox-SDK2 参…

java SSM课程平台系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM课程平台系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S…

RHCE9学习指南 第11章 网络配置

11.1 网络基础知识 一台主机需要配置必要的网络信息&#xff0c;才可以连接到互联网。需要的配置网络信息包括IP&#xff0c;子网掩码&#xff0c;网关和DNS。 11.1.1 IP地址 在计算机中对IP的标记使用的是32bit的二进制&#xff0c;例如&#xff0c; 11000000 10101000 00…

Linux上管理不同版本的 JDK

当在 Linux 上管理不同版本的 JDK 时&#xff0c;使用 yum 和 dnf 可以方便地安装和切换不同的 JDK 版本。本文将介绍如何通过这两个包管理工具安装 JDK 1.8 和 JDK 11&#xff0c;并利用软连接动态关联这些版本。 安装 JDK 1.8 和 JDK 11 使用 yum 安装 JDK 1.8 打开终端并…

基于Wenet长音频分割降噪识别

Wenet是一个流行的语音处理工具&#xff0c;它专注于长音频的处理&#xff0c;具备分割、降噪和识别功能。它的长音频分割降噪识别功能允许对长时间录制的音频进行分段处理&#xff0c;首先对音频进行分割&#xff0c;将其分解成更小的段落或语音片段。接着进行降噪处理&#x…

循环冗余效验码的计算方法

循环冗余效验码的计算方法 G&#xff08;x&#xff09;&#xff1a; 在了解计算方法之前我们首先要明白G&#xff08;x&#xff09;表明的意思&#xff0c;这一步非常重要&#xff01; 例如&#xff0c;G&#xff08;x&#xff09; x^3 x^2 1 &#xff0c;该式子表明的编…