Hbase2.0完全分布式安装完整版——Hbase2.1.2

版权声明:未经博主同意不得转载,请尊重知识敬畏技术 https://blog.csdn.net/weixin_42003671/article/details/86539250

@羲凡——只为了更好的活着

Hbase2.0完全分布式安装完整版——Hbase2.1.2

HBase是一个分布式的、面向列的开源数据库。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库,另一个不同的是HBase基于列的而不是基于行的模式。Hbase的安装也很简单,而且Hbase2.0和Hbase1.0以及Hbase0版本安装都非常类似,完全可以套用。此文中选择Hbase2.1.2作为示范!

我用三台机器做安装Hbase集群hostname分别是deptest14、deptest20、deptest23

一、前期准备

1.下载Hbase安装包

下载地址如下
https://archive.apache.org/dist/hbase/2.1.2/
在这里插入图片描述

2.安装jdk(官网要求jdk1.8)

hadoop都安装了,jdk肯定早就有了。不会的同学可以,烦我前面的博客,不赘述
hadoop高可用安装 https://blog.csdn.net/weixin_42003671/article/details/86478544

3.安装zookeeper

本文选着Hbase自带的zk,入股哦全部按照本文来,可以跳过此步骤
hadoop都安装了,zk肯定早就有了。不会的同学可以,烦我前面的博客,不赘述
hadoop高可用安装 https://blog.csdn.net/weixin_42003671/article/details/86478544

二、安装Hbase

先在一台机器(比如deptest23)上操作,再将安装包拷贝到其他机器上

0.介绍官网两段话

HBase的配置参数修改,主要根据下面两句话,很简单的英语大家可以看一下。官网地址 http://hbase.apache.org/2.1/book.html#_configuration_files

在这里插入图片描述
在这里插入图片描述

1.解压并配置/etc/profile

tar -zxf hbase-2.1.2-bin.tar.gz -C ./ # 解压到当前文件夹
sudo vi /etc/profile
	# HBASE_HOME
	export HBASE_HOME=/usr/local/package/hbase-2.1.2
	export PATH=$PATH:$HBASE_HOME/bin
# 重新加载/etc/profile文件
source /etc/profile 

2.修改环境文件 hbase-env.sh

设置 JAVA_HOME 为自己安装的版本

# The java implementation to use.  Java 1.8+ required.
# export JAVA_HOME=/usr/java/jdk1.8.0/
export JAVA_HOME=/usr/local/package/jdk1.8.0_131

设置 HBASE_MANAGES_ZK 为true(默认为true),即开启hbase自带的zk,如果你用自己的zk这需要将其设置为false

# Tell HBase whether it should manage it's own instance of ZooKeeper or not.
# export HBASE_MANAGES_ZK=true
export HBASE_MANAGES_ZK=true

2.修改配置文件 hbase-site.xml

<configuration>
<!-- HBase数据的存储目录 -->
<property>
	<name>hbase.rootdir</name>
	<value>/hbase</value>
</property>
<!-- 开启HBase分布式集群 -->
<property>
	<name>hbase.cluster.distributed</name>
	<value>true</value>
</property>
<!-- 自己的zk集群 -->
<property>
	<name>hbase.zookeeper.quorum</name>
	<value>deptest14,deptest20,deptest23</value>
</property>
<!-- 设置zk集群端口,默认是2181,此处设置成21810是为了防止和你自己的zk有冲突 -->
<property>
	<name>hbase.zookeeper.property.clientPort</name>
	<value>21810</value>
</property>
<!-- Hbase在zk上注册的数据信息,默认是/tmp,如果不修改,当系统重启的时候会删除/tmp目录 -->
<property>
	<name>hbase.zookeeper.property.dataDir</name>
	<value>/usr/local/package/hbase-2.1.2/zk_data</value>
</property>
</configuration>

3.修改 regionservers

# 要删除之前的localhost,添加如下三行
deptest14
deptest20
deptest23

4.拷贝core-site.xml和hdfs-site.xml

为了让Hbase读取到hadoop的配置将两个文件拷贝到 $HBASE_HOME/conf/ 目录下

cp $HADOOP_HOME/etc/hadoop/core-site.xml $HBASE_HOME/conf/
cp $HADOOP_HOME/etc/hadoop/hdfs-site.xml $HBASE_HOME/conf/

5.分发和启动

a.将Hbase安装包,从deptest23分发到另外两台机器(deptest14和deptest20)上

scp -r hbase-2.1.2/ deptest14:/usr/local/package/
scp -r hbase-2.1.2/ deptest20:/usr/local/package/

b.添加HBASE_HOME到/etc/profile文件中

sudo vi /etc/profile
	# HBASE_HOME
	export HBASE_HOME=/usr/local/package/hbase-2.1.2
	export PATH=$PATH:$HBASE_HOME/bin
# 重新加载/etc/profile文件
source /etc/profile 

c.启动Hbase
在哪一台机器上输入此 start-hbase.sh启动命令(博主在deptest20上执行),那一台机器就是HMaster
在这里插入图片描述
d.启动master备份节点(在deptest23上执行)

hbase-daemon.sh start master

在这里插入图片描述

三、测试Hbase

在任意目录下输入hbase shell进入hbase

hbase(main):001:0> list_namespace
NAMESPACE                                                                                                                                                                                                        
default                                                                                                                                                                                                          
hbase                                                                                                                                                                                                            
2 row(s)
Took 2.0178 seconds                                                                                                                                                                                              
hbase(main):002:0> create_namespace 'aarontest'
Took 0.8973 seconds                                                                                                                                                                                              
hbase(main):003:0> create 'aarontest:hb_staff','info'
Created table aarontest:hb_staff
Took 2.4781 seconds                                                                                                                                                                                              
=> Hbase::Table - aarontest:hb_staff
hbase(main):004:0> put 'aarontest:hb_staff','188','info:name','aaron'
Took 0.4232 seconds                                                                                                                                                                                              
hbase(main):005:0> put 'aarontest:hb_staff','188','info:age','100'
Took 0.0139 seconds                                                                                                                                                                                              
hbase(main):006:0> put 'aarontest:hb_staff','188','info:sex','male'
Took 0.0107 seconds                                                                                                                                                                                              
hbase(main):007:0> put 'aarontest:hb_staff','219','info:name','yaoyao'
Took 0.0097 seconds                                                                                                                                                                                              
hbase(main):008:0> put 'aarontest:hb_staff','219','info:sex','18'
Took 0.0107 seconds                                                                                                                                                                                              
hbase(main):009:0> scan 'aarontest:hb_staff'
ROW                                                   COLUMN+CELL                                                                                                                                                
 188                                                  column=info:age, timestamp=1547959759887, value=100                                                                                                        
 188                                                  column=info:name, timestamp=1547959737122, value=aaron                                                                                                     
 188                                                  column=info:sex, timestamp=1547959784771, value=male                                                                                                       
 219                                                  column=info:name, timestamp=1547959820155, value=yaoyao                                                                                                    
 219                                                  column=info:sex, timestamp=1547959831162, value=18                                                                                                         
2 row(s)
Took 0.1337 seconds                                                                                                                                                                                              
hbase(main):010:0> get 'aarontest:hb_staff','188'
COLUMN                                                CELL                                                                                                                                                       
 info:age                                             timestamp=1547959759887, value=100                                                                                                                         
 info:name                                            timestamp=1547959737122, value=aaron                                                                                                                       
 info:sex                                             timestamp=1547959784771, value=male                                                                                                                        
1 row(s)
Took 0.0997 seconds

四、安装注意事项

1.查看/etc/hosts中的映射关系

博主在这里被坑了,因为公司业务中总有一些需要配置映射的,如果你用到的ip被映射成别的名字而不是配置文件中需要就会报错。博主的情况是,deptest23这台机器的IP在 /etc/hosts 中映射成别的名字。导致你在deptest23上开启的端口别人访问不到。

10.11.12.23	aaron.com #将这一行注释掉
10.11.12.23	deptest23

2.如果配置完全分布式,一定要将core-site.xml和hdfs-site.xml文件拷贝到$HBASE_HOME/conf/ 目录下,不然会报如下错误

java.io.IOException: Can not create wal directory file:/hbase/WALs/deptest23,16020,1547958640541
	at org.apache.hadoop.hbase.regionserver.HRegionServer.setupWALAndReplication(HRegionServer.java:1814)
	at org.apache.hadoop.hbase.regionserver.HRegionServer.handleReportForDutyResponse(HRegionServer.java:1517)
	at org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:963)
	at java.lang.Thread.run(Thread.java:748)

或者

Caused by: java.net.UnknownHostException: ns

3.如果第一次没有启动成功,第二次尝试启动时必须删掉 hbase.zookeeper.property.dataDir 对应的目录(三台zk上都要操作)

4.hbase1.0以后的版本webUI的端口是16010,但是1.0之前是60010。必须看好自己的版本,不要搞错了

5.在哪台机器上执行 start-hbase.sh,那台机器就是master

6.在已经有一个master的情况下,在一台机器上在启动一个master,这该master为备份节点(Backup Masters),备份节点可以启动多个(一般启动两个就够了),形成真正的高可用

恭喜您已经完成Hbase 的安装
恭喜您已经完成Hbase 的安装
恭喜您已经完成Hbase 的安装

若对博客中有任何问题,欢迎留言交流

@羲凡——只为了更好的活着

猜你喜欢

转载自blog.csdn.net/weixin_42003671/article/details/86539250