准备
1、搭建环境
系统:centos7
jdk:1.8;
hadoop:3.1.3;
zookeeper:3.6.0;
hbase:2.2.4
2、说明
搭建hbase前提必须具有以下环境:
1、JDK安装完整并配置好环境变量
2、hadoop搭建三个集群,并配置好环境变量
3、zookeeper正常启动单机版本,并配置环境变量
hbase配置(单机)
1、官网下载包:hbase-2.2.4-bin.tar.gz
地址:https://hbase.apache.org/downloads.html
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dMcnCfOh-1589853306074)(img\image-20200515094342393.png)]
2、将包上传到自己的服务器上并解压
tar -zxvf hbase-2.2.4-bin.tar.gz
3、配置 conf/hbase-env.sh
vim conf/hbase-env.sh
添加以下内容
export JAVA_HOME=/base/JDK/jdk1.8.0_221
#关闭hbase自带的zookeeper(我们已经启动Zk,不需要自带的)
export HBASE_MANAGES_ZK=false
# hbase home
export HBASE_HOME=/base/hbase/hbase-2.2.4
# hadoop home目录
export HADOOP_HOME=/base/hadoop/hadoop-3.1.3
#Hbase 日志目录
export HBASE_LOG_DIR=${HBASE_HOME}/logs
4、配置 conf/hbase-site.xml
vim conf/hbase-site.xml
添加以下内容
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop22:9000/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>
<!-- zookeeper 地址-->
<property>
<name>hbase.zookeeper.quorum</name>
<value>192.168.85.21</value>
</property>
</configuration>
5、启动
./bin/start-hbase.sh
查看是否启动成功
jps
可以看到如图所示中只启动了一个HRegionServer,还差一个Hmaster没有起来,如果正常来说,HMaster应该也启动的。但是并没有启动,这时候需要查看日志哪里出了问题。
6、查看日志
在网上好多博客都说在配置文件conf/hbase-site.xml中添加以下配置就可以解决,但是事实上这几行配置并不是解决这个问题的根本问题。这配置只是在不连接HDFS时候需要加的配置。我们可以在官方文档中对这条配置的具体说明。可自行查看。
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
<description>
Controls whether HBase will check for stream capabilities (hflush/hsync).
Disable this if you intend to run on LocalFileSystem, denoted by a rootdir
with the 'file://' scheme, but be mindful of the NOTE below.
WARNING: Setting this to false blinds you to potential data loss and
inconsistent system state in the event of process and/or node failures. If
HBase is complaining of an inability to use hsync or hflush it's most
likely not a false positive.
</description>
</property>
导致Hmaster启动失败的根本原因是我们下载下来的包中的hadoop jar包的版本和我们本地启动的hadoop版本不一致而导致的。
因此需要我们去官网下载源码重新编译hbase包,并配置对应自己安装好的hadoop 版本去编译。
7、重新编译
1)、将下载的源码解压
2)、如图所示在该目录中打进行打开
Gitt shell 命令行(可自行去下载安装Git客户端,windos cmd好像不行,我自己试了好几次)
3)、重新编译命令
mvn clean package -DskipTests assembly:single -Dhadoop.profile=3.0 -Dhadoop-three.version=3.1.3
three.version=3.1.3中的3.1.3是需要跟自己一直的hadoop版本号。
重新编译打包时间过程有点长,耐心等待。
最后打包成功,去hbase-assembly 目录的target中找到对应的包
把新编译后的包上传服务器,再进行上面的配置就可以正常启动了。
web页面访问地址:http://IP:16010