Hbase完全分布式安装教程,详细版

查看下面的我上期的文章选择好并下载合适自己的Hbase版本

http://【Hbase伪分布安装教程,详细版 - CSDN App】https://blog.csdn.net/weizhigongzi/article/details/145946899?sharetype=blog&shareId=145946899&sharerefer=APP&sharesource=weizhigongzi&sharefrom=link

下面开始完全分布式的Hbase安装

注:1、文档中hadoop101 hadoop102 hadoop103为三台虚拟机的主机名,进行安装配置时,要改成自己电脑的主机名或IP地址

2.教程中涉及到路径的,也要根据自己电脑的实际路径进行修改,不能一味的复制哦

开始之前必须确保你的zookeeper和Hadoop已经成功的安装配置好了再开始下面的步骤

本次用到的Hbase为2.4.6版本,Hadoop为3.1.3版本,JDK为JDK8

每台虚拟机或服务器都要进行Hbase的配置

先将安装包上传到主节点虚拟机,我的主节点是hadoop101,然后配置好后在进行集体分发

解压到自己的安装目录

去到存放安装包的位置

根据自己的软件安装位置解压,/opt/module/是我的安装路径,解压命令:tar -zxvf hbase-2.4.6-bin.tar.gz -C /opt/module/

配置环境变量

命令:sudo vim /etc/profile

文件最后添加如下内容:

#HBASE_HOME

export HBASE_HOME=/opt/module/hbase-2.4.6

export PATH=PATH:HBASE_HOME/bin

让环境变量生效命令:source /etc/profile

这里以分发到hadoop102为例,还需要分发到其它机子,命令:sudo scp -r /etc/profile zq@hadoop102:/etc/profile

另一种环境变量配置方式

就是在profile.d下创建了一个属于自己的环境变量文件,就比如我的,my_env.sh是我自己创建的一个环境变量管理文件

命令:sudo vim /etc/profile.d/my_env.sh

将其添加到其中

使环境变量生效:source /etc/profile.d/my_env.sh

再分发到其它机子,我就用自己的分发脚本分发了,往期有脚本编写,链接如下,查看qsync集群分发脚本处

http://【Hadoop伪分布及集群配置,保姆级教程 - CSDN App】https://blog.csdn.net/weizhigongzi/article/details/144300530?sharetype=blog&shareId=144300530&sharerefer=APP&sharesource=weizhigongzi&sharefrom=link

命令:sudo xsync /etc/profile.d/my_env.sh /etc/profile.d/

修改hbase-env.sh 内容,文件在Hbase安装目录下的conf文件夹下

去到文件夹:cd /opt/module/hbase-2.4.6/conf/

编辑文件命令:vim hbase-env.sh

在文件最后添加如下内容保存退出:

export JAVA_HOME=/opt/module/jdk1.8.0_212

export HBASE_MANAGES_ZK=false

记得将JDK的路径改为自己的

修改hbase-site.xml 内容

编辑文件命令:vim hbase-site.xml

把下面参数加configuration标签内保存并退出,原来有的内容就不要删了

要配分布式的话第一个要改为true

<!-- 8020或9000要与hadoop的core-site.xml fs.defaultFS的端口一致 -->

<property>

<name>hbase.rootdir</name>

<value>hdfs://hadoop101:8020/HBase</value>

</property>

<property>

<name>hbase.master.port</name>

<value>16000</value>

</property>

<!-- 在分布式的情况下一定要设置,不然容易出现Hmaster起不来的情况 -->

<property> <name>hbase.unsafe.stream.capability.enforce</name>

<value>false</value>

</property>

<property>

<name>hbase.wal.provider</name>

<value>filesystem</value>

</property>

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/opt/module/zookeeper-3.8.4/zkData</value>

</property>

<property>

<name>hbase.zookeeper.quorum</name>

<value>hadoop101,hadoop102,hadoop103</value>

</property>

还要注意其中的hbase.rootdir下的端口要与Hadoop里配置的一样,如下图所示,以及注意改zookeeper的路径

修改regionservers

命令:vim regionservers

删除原来的localhost

把所有的主机IP填写进去,如果是配置IP映射的话填所有的IP对应的名称也行,前后不要有空格,最好手动敲,然后保存退出

软连接hadoop 配置文件到HBase

命令:ln -s /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml /opt/module/hbase-2.4.6/conf/core-site.xml

命令:ln -s /opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml /opt/module/hbase-2.4.6/conf/hdfs-site.xml

根据自己的Hbase安装路径和Hadoop的安装路径作修改

分发到其它节点

使用scp,以分发到hadoop102为例

命令:scp -r /opt/module/hbase-2.4.6/ zq@hadoop102:/opt/module/

我使用自己编写的脚本

命令:xsync /opt/module/hbase-2.4.6/ /opt/module/

启动Hbase之前记得先启动Hadoop和zookeeper

启动方式1:

逐个启动

命令:/opt/module/hbase-2.4.6/bin/hbase-daemon.sh start master

命令:/opt/module/hbase-2.4.6/bin/hbase-daemon.sh start regionserver

对应的停止服务,将start改为stop

启动方式2:

命令:/opt/module/hbase-2.4.6/bin/start-hbase.sh

对应的停止服务命令将start改为stop

启动后主节点有三个进程,其余机子各有两个进程,Q开头的是zookeeper进程

Hbase启动脚本

回到根目录:cd ~

进入bin目录,这个目录是我存放脚本的地方: cd bin/

创建脚本文件:vim myhbase

添加下面的内容保存退出,注意修改必要的地方,如Hbase的安装路径,脚本的位置根据你自己的需求存放即可,但注意要将你存放的位置加入变量里

给执行权限:chmod +x myhbase

#!/bin/bash

case $1 in

"start"){

for i in hadoop101

do

echo ---------- hbase 启动 ------------

ssh $i "/opt/module/hbase-2.4.6/bin/start-hbase.sh"

done

};;

"stop"){

for i in hadoop101

do

echo ---------- hbase 停止 ------------

ssh $i "/opt/module/hbase-2.4.6/bin/stop-hbase.sh"

done

};;

*)

echo "Input Args Error..."

echo "$0 [start|stop]..."

;;

esac

用myhbase start启动

用myhbase stop关闭

启动成功后,可以通过"host:port"的方式来访问HBase 管理页面,例如:

http://hadoop101:16010++++或192.168.89.101:16010++++

根据自己的IP修改

查看版本命令: hbase version

输入hbase shell 进入hbase

输入exit退出

关闭服务顺序,建议先关闭hbase,在关闭zookeeper和hadoop

到此教程完毕!!!

相关推荐
人间打气筒(Ada)1 分钟前
分布式开源协调服务之zookeeper
运维·分布式·zookeeper
nicepainkiller17 分钟前
go 分布式redis锁的实现方式
数据库·redis·redis分布式锁
007php00729 分钟前
企微审批中MySQL字段TEXT类型被截断的排查与修复实践
大数据·开发语言·数据库·后端·mysql·重构·golang
Elastic 中国社区官方博客43 分钟前
使用 Elasticsearch 进行集成测试初始化数据时的注意事项
大数据·数据库·elasticsearch·搜索引擎·集成测试·可用性测试
V+zmm101341 小时前
美食推荐系统的微信小程序+论文源码调试讲解
java·数据库·微信小程序·小程序·毕业设计
涛粒子1 小时前
分布式和微服务的理解
分布式·微服务·架构
shaodong11231 小时前
鸿蒙系统分布式文件概述、访问、拷贝
分布式·华为·harmonyos
SelectDB技术团队2 小时前
Apache Doris 3.0.4 版本正式发布
大数据·数据库·数据分析·doris·存算分离
自不量力的A同学2 小时前
GreptimeDB v0.12 发布,开源 Rust 时序数据库
数据库·开源·时序数据库
老马啸西风2 小时前
聊一聊 IM 如何优化缓存
数据库·缓存·ai·优化·性能·im