天天看点

hbase的安装与配置(三台集群分布式)

=============================================================

一  安装前准备

=============================================================

下载hbase-2.2.5的JAR包后发现,lib中自带的是hadoop2.8.5和zookeeper-3.4.10版本,

下载hbase-2.3.0的JAR包后发现,lib中自带的是hadoop2.10和zookeeper-3.5.7版本,

因此这几个版本肯定是比较好的,不过本人不打算用这个默认的

hbase-2.2.5==>hadoop2.8.5和zookeeper-3.4.10

hbase-2.3.0==>hadoop2.10和zookeeper-3.5.7

本人的安装版本推荐:

HBASE2.2.X+ <==> Hadoop3.1.x+

hbase2.2.5 <==> Hadoop3.1.2

1. 下载地址

建议镜像地址: https://mirror.bit.edu.cn/apache/hbase/2.2.5/hbase-2.2.5-bin.tar.gz

2. 规划3个集群节点:

hosts主机都已经配置好映射,映射主机名分别为master,slave1,slave2,

且已经进行ssh免密配置,确保端口互通,防火墙关闭

=============================================================

二   安装过程:

=============================================================

1.解压

tar -zxvf hbase-2.2.5-bin.tar.gz -C ../

2. 配置环境变量

转到root用户,首先进入到 /etc/profile 目录,添加相应的配置信息:

#set HBASE environment

export HBASE_HOME=/opt/soft/hbase-2.2.5/

export PATH=$PATH:$HBASE_HOME/bin

3. 然后通过如下命令使得环境变量生效:

source /etc/profile

=============================================================

三    配置过程:

=============================================================

cd conf

1. vim hbase-env.sh

hbase-env.sh添加内容如下

注意:这里的JAVA_HOME请配置成你自己的:

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

export JAVA_CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

# export HBASE_OPTS="-XX:+UseConcMarkSweepGC"

export HBASE_MANAGES_ZK=false

第一行指定jdk位置

第二行指定额外的classpath元素

第三行是关于jvm的可以不需要

第四行,true表示使用hbase自带的zookeeper,false表示使用自己的zookeeper(推荐,趁此学一下zookeeper,学了hbase后面的storm跟spark也会去学,后面很多都要使用zookeeper,一劳永逸)。

2. hbase-site.xml内容如下:

<configuration>

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

<description>是否是分布式的,当然</description>

</property>

<property>

<name>hbase.tmp.dir</name>

<value>./tmp</value>

</property>

<property>

<name>hbase.unsafe.stream.capability.enforce</name>

<value>false</value>

</property>

<property>

<name>hbase.master</name>

<value>master:60000</value>

<description>指定hbase的主节点与端口号</description>

</property>

<property>

<name>hbase.master.maxclockskew</name>

<value>180000</value>

<description>时间同步允许的时间差</description>

</property>

<property>

<name>hbase.rootdir</name>

<value>hdfs://master:9000/hbase</value>

<description>hbase共享目录,持久化hbase数据,这个需要看你hadoop的核心文件里面配置的是不是master:9000不是的话得改成自己的hadoop里面写的,参照你的Hadoop的namenode的fs.defaultFS这个参数端口配置,我的hadoop的namenode是放在master上</description>

</property>

<property>

<name>hbase.zookeeper.quorum</name>

<value>master,slave1,slave2</value>

<description>指定zookeeper,我的zookeeper集群就是在这三台机器的</description>

</property>

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/opt/soft/hbase-2.2.5/zkdata</value>

<description>zookeeper配置信息快照的位置,目录会自己创建的</description>

</property>

</configuration>

补充说明:

hbase.rootdir:HBase的数据存储目录,由于HBase数据存储在HDFS上,所以要写HDFS的目录,注意路径端口要和Hadoop的fs.defaultFS端口一致。配置好后,HBase数据就会写入到这个目录中,且目录不需要手动创建,HBase启动的时候会自动创建。

hbase.cluster.distributed:设置为true代表开启分布式。

hbase.zookeeper.quorum:设置依赖的ZooKeeper节点,此处加入所有ZooKeeper集群即可。

hbase.zookeeper.property.dataDir:设置ZooKeeper的配置、日志等数据存放目录。

另外,还有一个属性hbase.tmp.dir是设置HBase临时文件存放目录,不设置的话,默认存放在/tmp目录,该目录重启就会清空。

3. regionservers里面添加从节点机器名

slave1

slave2

=============================================================

四. 将按照配置好的hbase上传到其他机器

=============================================================

scp -r /opt/soft/hbase-2.2.5/ hadoop@slave1:/opt/soft/

scp -r /opt/soft/hbase-2.2.5/ hadoop@slave2:/opt/soft/

=============================================================

五: 启动

=============================================================

1.

cd ../bin 转到bin目录

start-hbase.sh

停止用start-hbase.sh

2. 启动后jps查看是否新增了进程

xxxx HMaster

注:启动起来的前提需要启动hadoop和zookeeper,最后启动的话,那么master机器上会多出HMaster进程,slave1和slave2上多出了HRegionServer。

3. Web端UI界面访问Master-status:

浏览器访问HMaster所在节点的16010端口(http://master:16010)即可查看HBase集群的运行状态

=============================================================

六   可能出现的问题

=============================================================

出现问题启动不起来Hbase时

1.需要关闭DFS安全模式

手动关闭安全模式命令如下:

hdfs dfsadmin -safemode leave

2.测试HRegionServer上下线

单独启动HRegionServer节点:

启动集群中所有的regionserver

./hbase-daemons.sh start regionserver

启动某个regionserver

./hbase-daemon.sh start regionserver

3.如果关闭虚拟机后需要先启动

(1)[root@hadoop01 ~]# start-dfs.sh

(2)[root@hadoop01 ~]# zkServer.sh start

(3)[root@hadoop01 ~]# start-hbase.sh

查看jps是否存在即可。