hbase2.1.x集群:安装部署

上接:hadoop3.x教程目录

依赖

hbase 依赖 zookeeper、hdfs (较少需要 yarn),所以要先启动 zookeeper、hdfs,然后启动 hbase

说明

登录 hadoop1 虚拟机,进行下面操作

上传 hbase

上传 hbase-2.1.9-bin.tar.gz 到 /program 目录

解压

进入 /program 目录

cd /program

解压命令:

tar --no-same-owner -zxvf hbase-2.1.9-bin.tar.gz

查看解压结果

进入 /program 目录

cd /program

查看命令:

ll

看到 hbase-2.1.9 文件夹,说明成功

修改 hbase-env.sh

hbase-env.sh 配置了 hbase 的环境

进入 hbase 目录

cd /program/hbase-2.1.9/conf/

设置 JAVA_HOME

指定 java 绝对路径

使用 vim 编辑该文件:

vim hbase-env.sh

找到 export JAVA_HOME ,如果该行前面有 # ,就去掉 #,改成

# 指定jdk
export JAVA_HOME=/program/jdk1.8.0_202

可通过下面命令显示 java 绝对路径:

echo $JAVA_HOME

禁用自带ZooKeeper

找到 export HBASE_MANAGES_ZK ,如果该行前面有 # ,就去掉 #,改成

export HBASE_MANAGES_ZK=false

注意:如果不禁止,在启动 hbase 服务时,会自动篡改 3台服务器 zkData/myid 的值,导致整个 zk 服务不可启动

注意2:还需要将下面的 hbase.cluster.distributed 设置为 true,否则仍然会启动自带的 zookeeper

修改 hbase-site.xml

进入 hbase 目录

cd /program/hbase-2.1.9/conf/

vim hbase-site.xml

vim hbase-site.xml

增加内容

<!-- hbase数据在hdfs中的路径。namenode所在服务器 -->
<property>
    <name>hbase.rootdir</name>
    <value>hdfs://hadoop1:8020/hbase</value>
</property>
<!-- false单机模式(会启动自带的zookeeper),true是分布式模式 -->
<property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
</property>
<!-- 0.98 后的新变动,之前版本没有.port,默认端口为 60000 -->
<!-- <property> -->
<!--     <name>hbase.master.port</name> -->
<!--     <value>16000</value> -->
<!-- </property> -->

<!-- zookeeper集群地址,可省略2181端口号 -->
<property> 
    <name>hbase.zookeeper.quorum</name>
    <value>hadoop1,hadoop2,hadoop3</value>
</property>
<!-- zookeeper快照的存放位置 -->
<property> 
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/program/zookeeper-3.4.14/zkData/</value>
</property>
<!-- v2.1版分布式情况下,设置为false -->
<property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
</property>
<property>
    <name>hbase.wal.provider</name>
    <value>filesystem</value>
</property>

解释:

修改 regionservers

配置 hbase 节点

vim regionservers

删掉原内容,添加下面内容:

hadoop1
hadoop2
hadoop3

注意:

  • 不要有空行
  • 左右不要有空格

复制 htrace.jar

必须复制,否则启动报错,找不到类,详见:hbase报错:java.lang.NoClassDefFoundError: org/apache/htrace/SamplerBuilder

cp /program/hbase-2.1.9/lib/client-facing-thirdparty/htrace-core-3.1.0-incubating.jar  /program/hbase-2.1.9/lib/

删除冲突的jar包

hbase的 lib/client-facing-thirdparty/slf4j-log4j12-1.7.25.jar 与 hadoop 的 jar包冲突,启动服务时显示警告信息

删除 hbase 的 jar包即可,执行下面命令

rm -f /program/hbase-2.1.9/lib/client-facing-thirdparty/slf4j-log4j12-1.7.25.jar

同步文件

同步到 hadoop2

rsync -av /program/hbase-2.1.9 root@hadoop2:/program

同步到 hadoop3

rsync -av /program/hbase-2.1.9 root@hadoop3:/program

验证文件是否正确

增加环境变量

将 hbase 目录加入到环境变量中

执行下面命令:

vim /etc/profile.d/bigdata_env.sh

在文件下面增加以下内容:

# 配置 HBASE_HOME
export HBASE_HOME=/program/hbase-2.1.9
export PATH=${HBASE_HOME}/bin:$PATH

立即生效

source /etc/profile

同步到 hadoop2

rsync -av /etc/profile.d/bigdata_env.sh root@hadoop2:/etc/profile.d

登录 hadoop2,执行下面命令,立即生效

source /etc/profile

测试,输入 start-hb ,按 tab 键,如果能补全 start-hbase.sh 命令,说明成功

同步到 hadoop3

rsync -av /etc/profile.d/bigdata_env.sh root@hadoop3:/etc/profile.d

登录 hadoop3,执行下面命令,立即生效

source /etc/profile

测试,输入 start-hb ,按 tab 键,如果能补全 start-hbase.sh 命令,说明成功


原文出处:/show_1IX1u33BHOKG.html