Hbase分布式集群部署

2023-09-21 11:41:56

目录

一、环境说明

二、部署Hbase

2.1 解压Hbase

2.2 移动解压包

2.3 修改 hbase-env.sh文件

2.4 修改环境变量

2.5 修改hbase-site.xml文件

2.6 修改regionservers 文件

2.7 分发hbase

2.7.1 分发hbase包

2.7.2 分发环境配置

2.8 启动hbase服务

2.8.1 环境生效

2.8.2 master节点执行

2.8.3 node2节点执行

2.8.4 访问


一、环境说明

系统环境描述:本教程基于CentOS 8.0版本虚拟机
Hadoop集群:

节点NNNNJNZKFCZKDNRMNMIP
master***192.168.31.215
node1****192.168.31.8
node2**192.168.31.9
node3*****192.168.31.167
node4****192.168.31.154

Hbase 集群规划:

节点HMasterHRegionServerZKIP
master*192.168.31.215
node1*192.168.31.8
node2**192.168.31.9
node3**192.168.31.167
node4**192.168.31.154

软件版本:

软件版本
jdk1.8.0_211
zookeeper3.8.2
Hbase2.5.5
Hdoop3.3.4

提示:Hbase 是基于Hadoop的,在开始Hbase之前,需要确保你的Hadoop集群是可用的。同时,本次部署需要的zookeeper,我使用的是Hadoop集群中的,关于zookeeper的部署,这里不做描述。因为该文章是基于部署Hadoop之后,所以一些机器的基本配置这里不做描述,比如机器的免密登录,机器的hosts文件设置,包括基本的JDK安装等,如果对于这些部分有操作上的疑问,欢迎查看之前Hadoop的系列文章。具体可参考:一篇文章带你学会Hadoop-3.3.4集群部署_夜夜流光相皎洁_小宁的博客-CSDN博客

二、部署Hbase

2.1 解压Hbase

tar -zxvf hbase-2.5.5-bin.tar.gz

2.2 移动解压包

mv hbase-2.5.5 /usr/local/

2.3 修改 hbase-env.sh文件

cd /usr/local/hbase-2.5.5/conf
vim hbase-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_211

2.4 修改环境变量

vim /etcprofile

export HBASE_HOME=/usr/local/hbase-2.5.5
export PATH=$PATH:$HBASE_HOME/bin

2.5 修改hbase-site.xml文件

vim hbase-site.xml

<!-- hbase是否部署为集群模式  -->
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <!--zookeeper 集群ip -->
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>node2:2181,node3:2181,node4:2181</value>
  </property>
  <!--zookeeper data dir -->
  <property>
    <name>hbase.zoopkeeper.property.dataDir</name>
    <value>/usr/local/hbase-2.5.5/data/zookeeper</value> 
  </property>
  <!--要把hbase的数据存储hdfs上的路径 -->
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://master:9000/hbase</value>
  </property>
  <!--hbase 数据目录 -->
   <property>
     <name>hbase.tmp.dir</name>
     <value>/usr/local/hbase-2.5.5/data/hbase/tmp</value>
   </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>

  <!-- Flink Secondary Index -->
  <property>
    <name>hbase.regionserver.wal.codec</name>
    <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
  </property>

  <property>
    <name>hbase.column.max.version</name>
    <value>2</value>
  </property>
  <property>
    <name>hbase.regionserver.global.memstore.size</name>
    <value>0.2</value>
  </property>
  <property>
    <name>hbase.regionserver.global.memstore.size.lower.limit</name>
    <value>0.8</value>
  </property>

  <!-- 实际的Block Size = Heap size * hfile.block.cache.size, 需要重启才能生效,HDFS读较多时,可以增加zhe -->
  <property>
    <name>hfile.block.cache.size</name>
    <value>0.2</value>
  </property>

  <!--bytes,每个用户写缓存数,默认2097152; 总消耗内存=hbase.client.write.buffer * hbase.regionserver.handler.count -->
  <property>
    <name>hbase.hregion.memstore.flush.size</name>
    <value>134217728</value>
  </property>

  <!--RPC handler,default 30-->
  <property>
    <name>dfs.namenode.service.handler.count</name>
    <value>48</value>
  </property>

  <!-- Phoenix error-->
  <property>
    <name>phoenix.coprocessor.maxServerCacheTimeToLiveMs</name>
    <value>300000</value>
  </property>

  <!-- Region Split Policy -->
  <property>
    <name>hbase.regionserver.region.split.policy</name>
    <value>org.apache.hadoop.hbase.regionserver.DisabledRegionSplitPolicy</value>
  </property>

  
  <!-- Compacting 604800000 -->
  <property>
    <name>hbase.hstore.compactionthreshold</name>
    <value>5</value>
  </property>
  <property>
    <name>hbase.hstore.compaction.max</name>
    <value>10</value>
  </property>
  <property>
    <name>hbase.hstore.blockingStoreFiles</name>
    <value>16</value>
  </property>
  <property>
    <name>hbase.hregion.majorcompaction</name>
    <value>0</value>
  </property>

  <property>
    <name>hbase.hstore.compaction.throughput.higher.bound</name>
    <value>20971520</value>
    <description>The default is 20 MB/sec</description>
  </property>
  <property>
    <name>hbase.hstore.compaction.throughput.lower.bound</name>
    <value>10485760</value>
    <description>The default is 10 MB/sec</description>
  </property>

2.6 修改regionservers 文件

配置你希望启动HRegionserver服务的节点

vim regionservers

node1
node3
node4

2.7 分发hbase

2.7.1 分发hbase包

scp -r /usr/local/hbase-2.5.5/ root@node1:/usr/local/
scp -r /usr/local/hbase-2.5.5/ root@node2:/usr/local/
scp -r /usr/local/hbase-2.5.5/ root@node3:/usr/local/
scp -r /usr/local/hbase-2.5.5/ root@node4:/usr/local/

2.7.2 分发环境配置

scp /etc/profile root@node1:/etc/profile
scp /etc/profile root@node2:/etc/profile
scp /etc/profile root@node3:/etc/profile
scp /etc/profile root@node4:/etc/profile

提示:注意执行source /etc/profile 使环境生效

2.8 启动hbase服务

2.8.1 环境生效

执行source /etc/profile 使环境生效(所有节点)

source /etc/profile

2.8.2 master节点执行

start-hbase.sh

可以通过netstat -anp | grep 16010 探测端口是否被启用,通过jps 查看master 是否有HMaster 服务启动,有则证明启动成功

注意:启动服务之前,需要先启动zookeeper

2.8.3 node2节点执行

hbase-daemon.sh start master

通过jps 指令查看node2节点,是否有HMaster服务启动,有则证明启动成功。

注意:启动服务之前,需要先启动zookeeper

2.8.4 访问

浏览器访问服务:

Backup Master: master

能成功访问到HBase的页面,查看信息和我们配置的没有出入,符合预期,说明本次HBase集群服务部署成功了。

好了,今天HBase分布式集群部署的相关内容就分享到这里,如果帮助到大家,欢迎大家点赞+关注+收藏,有疑问也欢迎大家评论留言!

更多推荐

命令模式-

定义:又叫动作模式或事务模式。指的是将一个请求封装成一个对象,使发出请求的责任和执行请求的责任分割开,然后可以使用不同的请求把客户端参数化,这样可以使得两者之间通过命令对象进行沟通,从而方便将命令对象进行储存、传递、调用、增加与管理。应用场景:1、对于很多数的请求-响应模式的功能,比较适合使用命令模式,命令模式对实现记

【ComfyUI】安装 之 window版

文章目录序言步骤下载comfyUI配置大模型和vae下载依赖组件启动生成图片解决办法序言由于stablediffusionwebui无法做到对流程进行控制,只是点击个生成按钮后,一切都交给AI来处理。但是用于生产生活是需要精细化对各个流程都要进行控制的。故也就有个今天的猪脚:Comfyui步骤下载comfyui项目配置

Python工程师Java之路(p)Maven聚合和继承

文章目录依赖管理依赖传递可选依赖和排除依赖继承与聚合依赖管理指当前项目运行所需的jar,一个项目可以设置多个依赖<!--设置当前项目所依赖的所有jar--><dependencies><!--设置具体的依赖--><dependency><!--依赖所属群组id--><groupId>org.springframewor

Java中ArrayList 和 LinkedList 的区别

ArrayList和LinkedList都是Java中常见的集合类,它们用于存储和操作数据。它们之间的主要区别在于其底层数据结构和性能特征:底层数据结构:ArrayList使用动态数组作为其底层数据结构。动态数组的容量会根据需要自动扩展。LinkedList使用双向链表作为其底层数据结构。每个元素都包含对前一个和后一个

【基础篇】四、SpringBoot整合第三方技术

文章目录1、SpringBoot整合Junit2、SpringBoot整合MyBatis3、SpringBoot整合MyBatisPlus4、SpringBoot整合Druid1、SpringBoot整合Junit步骤:导入测试对应的starter测试类使用@SpringBootTest修饰使用自动装配的形式添加要测试

Hexo在多台电脑上提交和更新

文章目录1.博客搭建2.创建一个新文件夹new,用于上传hexo博客目录3.github上创建hexo分支并设置为默认分支创建hexo分支将hexo分支设置为默认分支4.进入新建的文件夹中gitclone,再上传相关文件至hexo分支1.clone下来的文件夹内应该有个.gitignore文件,用来忽略一些不需要的文件

Docker安装ElasticSearch/ES 7.10.0

目录前言安装ElasticSearch/ES安装步骤1:准备1.安装docker2.搜索可以使用的镜像。3.也可从dockerhub上搜索镜像。4.选择合适的redis镜像。安装步骤2:拉取ElasticSearch镜像1拉取镜像2查看已拉取的镜像安装步骤3:创建容器创建容器方式1:快速创建容器安装步骤4:运行容器安装

ELT in ByteHouse 实践与展望

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群谈到数据仓库,一定离不开使用Extract-Transform-Load(ETL)或Extract-Load-Transform(ELT)。将来源不同、格式各异的数据提取到数据仓库中,并进行处理加工。传统的数据转换过程一般采用Extra

活动报名 | Modern Data Stack Meetup 北京首站启动!与三大开源社区共同探索现代数据栈的最佳实践

相信对于“现代数据堆栈(ModernDataStack)”这个名词,大家早已不陌生。但若问及其真正含义,往往又很难快速、准确地阐明。事实上,对于我们的团队组织而言,吃透并灵活应用“现代数据栈”所能带来的价值与收益,将会是深远且符合发展趋势的。Q1:什么是现代数据堆栈?现代数据堆栈的流行伴随着云计算和云数据仓库的崛起,本

【算法基础】数学知识

质数质数的判定866.试除法判定质数-AcWing题库时间复杂度是logN#include<bits/stdc++.h>usingnamespacestd;intn;boolisprime(intx){if(x<2)returnfalse;for(inti=2;i<=x/i;i++){if(x%i==0)returnf

华为云云耀云服务器L实例评测|部署前后端分离项目

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉🍎个人主页:Leo的博客💞当前专栏:学习测评✨特色专栏:MySQL学习🥭本文内容:华为云云耀云服务器L实例评测|部署前后端分离项目🖥️个人小站:个人博客,欢迎大家访问📚个人知识库:Leo知识库,欢迎大家访问大家好,我是

热文推荐