PRELOADER

当前文章 : 《hbase安装》

5/5/2019 —— 

服务规划

服务 centeros1 centeros2 centeros3
Master ×
RegionServer

安装步骤

解压hbase安装包

命令:

1
tar -zxvf hbase-2.1.1-bin.tar.gz

修改系统环境变量

新增:

1
2
HBASE_HOME=/home/hbase/hbase-2.1.1 
PATH=HBASE_HOME/bin

修改hbase-env.sh

修改JAVA_HOME位置

1
2
3
export JAVA_HOME= /home/java/jdk1.8.0_191
-- 关闭HBase自带的Zookeeper,使用Zookeeper集群:
export HBASE_MANAGES_ZK=false

修改hbase-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop/hbase</value>
<description>设置 hbase 数据库存放数据的目录,这里是放在hadoop hdfs上,这里要与hadoop的core-site.xml文件中的fs.default.name中的值一致</description>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
<description>打开 hbase 分布模式</description>
</property>
<property>
<name>hbase.master</name>
<value>60000</value>
<description>多Hmaster环境只需指定端口,不必指定主机名称</description>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/home/hbase/data</value>
<description>hbase的一些临时文件存放目录。</description>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>centeros3,centeros2,centeros1</value>
<description> 指定 zookeeper 集群节点名</description>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
<description> 连接到zookeeper的端口,默认是2181</description>
</property>
<property>
<name>hbase.master.info.port</name>
<value>16010</value>
<description> 默认HMaster HTTP访问端口</description>
</property>
<property>
<name>hbase.regionserver.info.port</name>
<value>16030</value>
<description>-默认HRegionServer HTTP访问端口</description>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>

修改regionservers

加入以下内容:

1
2
3
centeros1
centeros2
centeros3

新建backup-marters

新建backup-marter文件,加入centeros2为备用主节点
命令:

1
echo centeros2 >> backup-marter

分发文件

命令:

1
2
scp –r  /home/hbase/  centeros1:/home/hbase
scp –r /home/hbase/ centeros2:/home/hbase

启动hbase

启动的前提是zookeeper、hadoop都已正常启动。

在centeros3 执行命令:

1
/home/hbase/hbase-2.1.1/bin/start-hbase.sh

输入jps查看进程:

centeros3:

hbase安装

centeros2:

hbase安装

centeros1:

hbase安装

访问主节点

hbase安装

访问备用节点:

hbase安装

错误解决

错误:hbase无法启动

regionserver.HRegionServer: Failed construction RegionServer
java.lang.IllegalArgumentException: java.net.UnknownHostException: hadoop

原因:找不到host
解决:把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下

错误:

#localhost: ssh: Could not resolve hostname #localhost: Name or service not known

解决办法:删除 regionservers 中localhost

问题:所有节点只有HRegionServer,没有HMaster,HMaster启动失败

ERROR [main] regionserver.HRegionServer: Failed construction RegionServer
java.lang.NoClassDefFoundError: org/apache/htrace/SamplerBuilder

问题原因:hadoop-3.1.1 与 hbase-2.1.1 版本不匹配

官网版本匹配说明 https://hbase.apache.org/book.html#basic.prerequisites

解决办法:

将hbase lib/client-facing-thirdparty中的htrace-core-3.1.0-incubating.jar复制一份到hbase中的lib下

问题:Hmaster启动后自动挂掉

ERROR [master/centeros3:16000:becomeActiveMaster] master.HMaster: Failed to become active master
java.lang.IllegalStateException: The procedure WAL relies on the ability to hsync for proper operation during component failures, but the underlying filesystem does not support doing so. Please check the config value of ‘hbase.procedure.store.wal.use.hsync’ to set the desired level of robustness and ensure the config value of ‘hbase.wal.dir’ points to a FileSystem mount that can provide it.

原因:由于缺少文件系统的hsync,Master无法激活,使用的版本不支持hsync
解决办法:hbase-site.xml增加配置
1
2
3
4
 <property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>