【分布式】Hbase完全分布式搭建
Hbase完全分布式搭建(详细)
·
1.环境准备:
(1)VMware Workstation Pro17(其他也可)
(2)Centos7
(3)FinalShell
(4)hadoop集群(具体搭建看我以前的文章)
(5)Zookeeper集群(具体搭建看我以前的文章)
2.HBase的安装
- 从Apache HBase官方网站下载HBase的最新稳定版本。
hadoop版本为3.2.4,为了与hadoop兼容选择2.4的hbase
图1
- 解压下载的HBase压缩包到指定目录。
[hduser@node1 software]$ tar -zxvf hbase-2.4.18-bin.tar.gz -C /opt/module/
图2
- 配置HBase的环境变量,确保hbase命令在命令行中可用。
[hduser@node1 module]$ sudo vim /etc/profile.d/my_env.sh
图3
分发一下环境变量
[hduser@node1 module]$ sudo /home/hduser/bin/xsync /etc/profile.d/my_env.sh
图4
应用环境变量
[hduser@node1 module]$ source /etc/profile.d/my_env.sh
修改hbase的配置文件
[hduser@node1 module]$ cd hbase-2.4.18/conf
图5
修改HBase对应的配置文件。
(1)hbase-env.sh
[hduser@node1 conf]$ vim hbase-env.sh
export HBASE_MANAGES_ZK=false
图6
- hbase.site.xml
[hduser@node1 conf]$ vim hbase-site.xml
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>node1,node2,node3</value>
<description>The directory shared by RegionServers.
</description>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://node1:8020/hbase</value>
<description>The directory shared by RegionServers.
</description>
</property>
图7
(3)regionservers (三台主机)
[hduser@node1 conf]$ vim regionservers
图8
为解决Hbase和Hadoop的log4j兼容性问题,修改Hbase的 jar 包,使用hadoop的jar包
[hduser@node1 conf]$ mv /opt/module/hbase-2.4.18/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar /opt/module/hbase-2.4.18/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar.bak
拷贝hadoop配置文件
由于hbase对hdfs有依赖关系,则需要将hadoop下的core-site.xml和hdfs-site.xml复制到hbase中的conf目录下
[hduser@node1 hbase-2.4.18]$ cp /opt/module/hadoop-3.2.4/etc/hadoop/core-site.xml /opt/module/hbase-2.4.18/conf/
[hduser@node1 hbase-2.4.18]$ cp /opt/module/hadoop-3.2.4/etc/hadoop/hdfs-site.xml /opt/module/hbase-2.4.18/conf/
图9
分发到node2和node3
[hduser@node1 module]$ xsync hbase/
图10
图11
3. 启动HBase
- 进入HBase的安装目录,运行start-hbase.sh脚本启动HBase。
图12
- 使用jps命令检查HBase是否成功启动,应能看到HMaster进程。
图13
图14
图15
群起脚本hbash.sh编写:
#/bin/bash
case $1 in
"start"){
for i in node1 node2 node3
do
echo ---------------hbase $i启动------------------
ssh $i "/opt/module/hbase-2.4.18/bin/start-hbase.sh start"
done
}
;;
"stop"){
for i in node1 node2 node3
do
echo ---------------hbase $i关闭------------------
ssh $i "/opt/module/hbase-2.4.18/bin/stop-hbase.sh stop"
done
};;
esac
更多推荐
所有评论(0)