Apache-HBase2.4.12 安装

1.前置环境准备

1.1 Zookeeper 正常部署

首先保证 Zookeeper 集群的正常部署,Zookeeper安装参考:Apache-Zookeeper3.7.1安装

[root@node01 zookeeper-3.7.1]$ bin/zkServer.sh start 
[root@node02 zookeeper-3.7.1]$ bin/zkServer.sh start 
[root@node03 zookeeper-3.7.1]$ bin/zkServer.sh start 

1.2 Hadoop 正常部署

Hadoop 集群的正常部署,Hadoop集群安装参考:Apache-Hadoop3.3.3集群安装

[root@node01 hadoop-3.3.3]$ sbin/start-dfs.sh 
[root@node02 hadoop-2.7.2]$ sbin/start-yarn.sh 

1.3 HBase下载

HBase下载地址:HBase官方下载地址
注意:HBase与Hadoop的版本兼容性,下载对应Hadoop版本的HBase安装包,版本兼容矩阵参考HBase官方文档
官方文档参考:第4章《Basic Prerequisites》第1节

在这里插入图片描述
在这里插入图片描述
本次安装环境版本如下:

组件版本号
JDK8.+
Hadoop3.3.3
Zookeeper3.7.1
HBase2.4.12

1.4 集群规划

node01node02node03
Zookeeperfollowerleaderfollower
HBaseRegionserverRegionserver / Backup HMasterHMaster

2.HBase安装

2.1 HBase 的解压

解压 HBase 到指定目录:

tar -zxvf hbase-2.4.12-bin.tar.gz -C /opt/soft/

2.2 HBase 的配置文件

修改 HBase 对应的配置文件

cd /opt/soft/hbase-2.4.12

(1)conf/hbase-env.sh 添加以下内容

vim hbase-env.sh

export JAVA_HOME=/opt/soft/jdk1.8.0_261 
export HBASE_MANAGES_ZK=false 

自搭建的zookeeper集群,设置HBASE_MANAGES_ZK为false

(2)conf/hbase-site.xml 添加以下内容

vim hbase-site.xml

<configuration> 
  <property> 
    <name>hbase.rootdir</name> 
    <value>hdfs://node01:8020/hbase</value> 
  </property> 
  <property> 
    <name>hbase.cluster.distributed</name> 
    <value>true</value> 
  </property> 
  <!-- 0.98后的新变动,之前版本没有.port,默认端口为60000 --> 
  <property> 
    <name>hbase.master.port</name> 
    <value>16000</value> 
  </property> 
  <property> 
    <name>hbase.zookeeper.quorum</name> 
    <value>node01:2181,node02:2181,node03:2181</value> 
  </property> 
  <property> 
    <name>hbase.zookeeper.property.dataDir</name> 
    <value>/opt/soft/zookeeper-3.7.1/logs/zookeeper</value> 
  </property> 
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property> 
</configuration> 

(3)regionservers:

vim regionservers

node01
node02
node03

(4)软连接 hadoop 配置文件到 hbase:

ln -s /opt/soft/hadoop-3.3.3/etc/hadoop/core-site.xml /opt/soft/hbase-2.4.12/conf/core-site.xml 
ln -s /opt/soft/hadoop-3.3.3/etc/hadoop/hdfs-site.xml /opt/soft/hbase-2.4.12/conf/hdfs-site.xml 

远程发送到其他节点

ssh_do_scp.sh ~/bin/node.list /opt/soft/hbase-2.4.12/ /opt/soft/

2.3 HBase高可用配置

在 HBase 中 Hmaster 负责监控 RegionServer 的生命周期,均衡RegionServer 的负载,如果 Hmaster 挂掉了,那么整个 HBase 集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。所以 HBase 支持对 Hmaster 的高可用配置。
1.关闭 HBase 集群(如果没有开启则跳过此步)

stop-hbase.sh

2.在 conf 目录下创建 backup-masters 文件

[root@node01 bin]# cd /opt/soft/hbase-2.4.12/conf/
[root@node01 conf]# touch backup-masters

3.在 backup-masters 文件中配置高可用 HMaster 节点

[root@node01 conf]# echo node02 > backup-masters

4.将整个 conf 目录 scp 到其他节点

[root@node01 conf]# ssh_do_scp.sh ~/bin/node.list /opt/soft/hbase-2.4.12/conf/backup-masters /opt/soft/hbase-2.4.12/conf/
==================== node01 ====================
skip node01
==================== node02 ====================
param is file
backup-masters                                                                                                               100%    7     7.3KB/s   00:00
==================== node03 ====================
param is file
backup-masters 

5.打开页面测试查看

http://node02:16010

2.4 HBase 服务的启动

1.启动HBase并验证
(1)配置HBase环境变量

vim /etc/profile

export HBASE_HOME=/opt/soft/hbase-2.4.12
export PATH=$PATH:$HBASE_HOME/bin

source /etc/profile

(2)启动HBase

start-hbase.sh

对应的停止服务:

stop-hbase.sh

(3)查看 HBase 页面
启动成功后,可以通过“host:port”的方式来访问 HBase 管理页面,例如:
http://node03:16010

(4)执行命令

hbase shell

hbase:003:0> create 'user', 'info'
Created table user
Took 0.6853 seconds
=> Hbase::Table - user
hbase:004:0> put 'user','rk01','info:name','zhangsan'
Took 0.1572 seconds
hbase:005:0> put 'user','rk01','info:age',20
Took 0.0077 seconds
hbase:006:0> scan 'user'
ROW                                      COLUMN+CELL
 rk01                                    column=info:age, timestamp=2022-06-07T11:11:15.073, value=20
 rk01                                    column=info:name, timestamp=2022-06-07T11:11:10.954, value=zhangsan
1 row(s)
Took 0.0322 seconds

2.HBase启动脚本编写

vim myhbase.sh

#!/bin/bash

if [ $# -lt 1 ]
then
        echo "No Args Input..."
        exit;
fi

case $1 in
"start")
        echo "-----------------启动HBase----------------"
        ssh node03 "/opt/soft/hbase-2.4.12/bin/start-hbase.sh "
;;
"stop")
        echo "-----------------停止HBase----------------"
        ssh node03 "/opt/soft/hbase-2.4.12/bin/stop-hbase.sh "
;;
*)
        echo "Input Args Error.."
;;
esac

使用脚本启动HBase

[root@node01 ~]# myhbase.sh start
-----------------启动HBase----------------
running master, logging to /opt/soft/hbase-2.4.12/bin/../logs/hbase-root-master-node03.out
node02: running regionserver, logging to /opt/soft/hbase-2.4.12/bin/../logs/hbase-root-regionserver-node02.out
node03: running regionserver, logging to /opt/soft/hbase-2.4.12/bin/../logs/hbase-root-regionserver-node03.out
node01: running regionserver, logging to /opt/soft/hbase-2.4.12/bin/../logs/hbase-root-regionserver-node01.out
node02: running master, logging to /opt/soft/hbase-2.4.12/bin/../logs/hbase-root-master-node02.out

3 异常问题

进到hbase shell中执行命令会失败,执行list命令报错:

ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not run yet.

查看HBase-Master日志:

WARN [RS-EventLoopGroup-1-1] concurrent.DefaultPromise: An exception was thrown by org.apache.hadoop.hbase.io.asyncfs.FanOutOneBlockAsyncDFSOutputHelper$4.operationComplete()
java.lang.IllegalArgumentException: object is not an instance of declaring class

解决办法:
在hbase-site.xml中添加如下配置, 重启HBase

<property>
  <name>hbase.wal.provider</name>
  <value>filesystem</value>
</property>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值