当前位置: 首页 > 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

相关文章:

  • 复杂网络与嵌入式领域结合方向
  • css 美化滚动条样式
  • ruoyi若依前后端分离版部署centos7服务器(全)
  • Vue如何请求接口——axios请求
  • 第六章[字典]:6.4:字典推导式
  • OD Linux发行版本
  • JavaOOP篇----第十四篇
  • leetcode 131. 分割回文串
  • Uniapp + Vue3 封装请求工具挂载全局
  • windows平台配置vsCode_CMake_Clang/LLVM_ninja环境与测试
  • 堆与二叉树(下)
  • 深度学习 | 基础卷积神经网络
  • 智能优化算法应用:基于蛇优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • C语言沉浸式刷题【C语言必刷题】
  • rk3588 之启动
  • 2017前端实习生面试总结
  • CentOS 7 修改主机名
  • Elasticsearch 参考指南(升级前重新索引)
  • Spring Boot快速入门(一):Hello Spring Boot
  • Twitter赢在开放,三年创造奇迹
  • 百度地图API标注+时间轴组件
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 浅谈web中前端模板引擎的使用
  • 手写双向链表LinkedList的几个常用功能
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 一个SAP顾问在美国的这些年
  • 一文看透浏览器架构
  • 源码安装memcached和php memcache扩展
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​一些不规范的GTID使用场景
  • #1014 : Trie树
  • ${ }的特别功能
  • (2)nginx 安装、启停
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (二)PySpark3:SparkSQL编程
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (剑指Offer)面试题34:丑数
  • (四)JPA - JQPL 实现增删改查
  • (一)80c52学习之旅-起始篇
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • *Django中的Ajax 纯js的书写样式1
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET Core 成都线下面基会拉开序幕
  • .NET delegate 委托 、 Event 事件,接口回调
  • .net 使用ajax控件后如何调用前端脚本
  • .NET企业级应用架构设计系列之技术选型