【学习笔记】HBASE 完全分布式集群搭建

准备

hadoop版本:hadoop-3.2.2
zookeeper版本:apache-zookeeper-3.5.8-bin
hbase版本:hbase-2.4.17
jdk版本:jdk1.8.0_281

前提:在已部署好hadoop,zookeeper的集群上进行搭建
hadoop搭建参考: https://blog.csdn.net/SUMU31707/article/details/119845009?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-5-119845009-blog-127474350.235v43pc_blog_bottom_relevance_base2&spm=1001.2101.3001.4242.4&utm_relevant_index=6#t15
zookeeper搭建参考: https://blog.csdn.net/weixin_40612128/article/details/123271578?spm=1001.2014.3001.5502

上传 hbase-2.4.17-bin.tar.gz 安装包并解压到 /opt/module 目录下

配置 HBASE_HOME

修改hbase-env.sh

vim /opt/module/hbase-2.4.17/conf/hbase-env.sh

配置环境变量:

export JAVA_HOME=/opt/module/jdk1.8.0_281
export HBASE_MANAGES_ZK=false

修改hbase-site.xml

vim /opt/module/hbase-2.4.17/conf/hbase-site.xml

以下是几个比较重要的配置信息说明:

hbase.rootdir
这个目录是region server的共享目录,用来持久化HBase。URL需要是’完全正确’的。例如,要表示hdfs中的’/hbase’目录,namenode 运行在namenode.example.org的9090端口。则需要设置为hdfs://namenode.example.org:9000/hbase。默认情况下HBase是写到/tmp的。不改这个配置,数据会在重启的时候丢失。
默认: file:///tmp/hbase-${user.name}/hbase
hbase.master.port
HBase的Master的端口.
hbase.cluster.distributed
HBase的运行模式。false是单机模式,true是分布式模式。若为false,HBase和Zookeeper会运行在同一个JVM里面。
hbase.zookeeper.quorum
Zookeeper集群的地址列表,用逗号分割。例如:“host1.mydomain.com,host2.mydomain.com,host3.mydomain.com”.默认是localhost,是给伪分布式用的。要修改才能在完全分布式的情况下使用。如果在hbase-env.sh设置了HBASE_MANAGES_ZK,这些ZooKeeper节点就会和HBase一起启动。
<property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://hbase01:8020/hbase</value>
  </property>
  <property>
        <name>hbase.master.port</name>
        <value>16000</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>hbase01:2181,hbase02:2181,hbase03:2181</value>
    </property>
    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/opt/module/apache-zookeeper-3.5.8-bin/tmp</value>
    </property>
    <property>
        <name>hbase.unsafe.stream.capability.enforce</name>
        <value>false</value>
    </property>

修改 regionservers 文件

vim /opt/module/hbase-2.4.17/conf/regionservers

添加集群节点主机名( 不能有多余空格 )
在这里插入图片描述

修改环境变量文件

此处环境变量文件为自己在 /etc/profile.d/ 目录下创建的 dev_env.sh 文件。如果环境变量在 /etc/profile 中修改了,直接在 /etc/profile 即可

sudo vim /etc/profile.d/dev_env.sh

加入hbase环境:

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

使生效:

source /etc/profile

在这里插入图片描述

拷贝文件至其他节点

采用 scp 或者使用 xsync 脚本分发 /opt/module/hbase 至剩下的两个节点。

启动

启动habse时,由于hbase依赖于hdfs和zookeeper,所以要先启动hadoop和zookeeper,然后再启动hbase。

hadoop 启动
启动namenode,secondarynamenode,datanode

sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start secondarynamenode
sbin/hadoop-daemon.sh start datanode

或者:

sbin/start-dfs.sh

启动resourcemanager,nodemanager

sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager

或者:

sbin/start-yarn.sh

zookeeper启动

zkServer.sh start

hbase启动

start-hbase.sh

web访问端口16010

在停止集群进程的时候,要先停HBase集群进程,再停止Zookeeper集群和Hadoop集群,否则HBase停止程序会一直卡住不动,这种情况就需要使用kill命令强制杀进程了。

hbase初次执行报错

Error: Could not find or load main class org.apache.hadoop.hbase.util.GetJavaProperty

问题原因是:因为 Hbase 没有将其自身的依赖包添加到 classpath 配置路径所以才会导致找不到自身主类的报错, 添加上就可以了然后保存退出 即可

vim /opt/module/hbase-2.4.17/bin/hbase #编辑hbase原文件,此处应是你自身安装Hbase的路径

在161行出修改:

CLASSPATH="${HBASE_CONF_DIR}" 
CLASSPATH=${CLASSPATH}:$JAVA_HOME/lib/tools.jar:/opt/module/hbase-2.4.17/lib/*
#分隔符用":",将hbase自身的类文件引入class path

hbase shell

直接在命令行中输入hbase shell

  • 22
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值