目录
一、前言
Hbase是一个分布式的、面向列的开源数据库,有区别于传统的行式数据库(如Mysql等),与Hive数据仓库相比,更适合实时存储数据场景,但是与传统的列式数据库相比,更适合键值对的数据存取或者有序的数据存取。Hbase的版本有很多,读者在下载Hbase的压缩包之前,先去Hbase官网查看不同版本的hadoop对哪些版本的Hbase支持。本系列文章是基于hadoop集群搭建后的入门学习,关于hadoop集群搭建,请自行查看笔者发布的hadoop系列文章
二、Hbase的安装与配置
1、Hbase的安装
本次使用的Hbase版本为2.4.11,Hadoop版本为2.10.1。这里笔者提供一个下载网址,读者可以参考下载。
https://dlcdn.apache.org/hbase/https://dlcdn.apache.org/hbase/
上传、解压、重命名
将下载好Hbase压缩包上传到指定的目录,这里笔者上传到存放压缩包的/export/software/目录下
#使用rz命令,将本地压缩包上传到linux指定目录上
没有该命令,先输入以下指令安装上传文件工具rz软件
yum install lrzsz -y
rz
进入到上传压缩包的指定目录,进行解压
cd /export/software/
这里笔者,将压缩包解压到专门放置软件的/export/servers/目录下
tar -zxvf hbase-2.4.11-bin.tar.gz -C /export/servers/
对文件进行重命名,便于后续管理
mv /export/software/hbase-2.4.11-bin.tar.gz /export/servers/hbase
2、Hbase的配置
配置环境变量
vi /etc/profile
export HBASE_HOME=/export/servers/hbase
export PATH=$PATH:$HBASE_HOME/bin
刷新环境变量,使配置生效
source /etc/profile
修改hbase-site.xml文件
vi hbase-site.xml
<configuration>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/export/data/hbasedata</value>
</property>
<property>
<name>hbase.master.maxclockskew</name>
<value>180000</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop01:9000/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/export/data/zookeeper/zkdata</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop01,hadoop02,hadoop03</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<property>
<name>hbase.master.info.port</name>
<value>16010</value>
</property>
</configuration>
这里需要注意,hadoop的各个端口号的区别:
8020是默认rpc的端口号,一般用于IDE远程使用Hadoop集群,是程序和程序之间的连接。
9000端口:是HDFS默认的端口号,提供文件系统的端口供client角色寻找namenode角色的端口号,是进程之间的调用。
但是在core-site.xml文件的配置当中,如果hdfs://hadoop01:9000改为hdfs://hadoop01,则默认端口号为8020
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
50070:namenode提供给操作者使用Web访问的端口号,是操作者和程序之间的端口号
<property>
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>hadoop01:50070</value>
</property>
50090:secondarynamenode的端口号,这个也是Web访问的端口号
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop02:50090</value>
</property>
修改hbase-env.sh文件
vi hbase-env.sh
export JAVA_HOME=/export/servers/jdk
export HBASE_MANAGES_ZK=false
修改regionservers文件
vi regionservers
hadoop01
hadoop02
hadoop03
创建hbase的日志存储文件
这里需要注意创建文件要与hbase-site.xml中的配置相符
property>
<name>hbase.tmp.dir</name>
<value>/export/data/hbasedata</value>
</property>
mv /export/data/hbasedata
分发文件至其他节点
将Hadoop的配置文件复制到Hbase的conf/目录下
cd /export/servers/hadoop-2.10.1/etc/hadoop/
cp -r core-site.xml hdfs-site.xml /export/servers/hbase/conf/
将hadoop01上Hbase文件分发给hadoop02、hadoop03
scp -r /export/servers/hbase hadoop02:/export/servers/
scp -r /export/servers/hbase hadoop03:/export/servers/
scp -r /etc/profile hadoop02:/etc/
scp -r /etc/profile hadoop03:/etc/
scp -r /export/data/hbasedata hadoop02:/export/data/
scp -r /export/data/hbasedata hadoop03:/export/data/
在hadoop02、hadoop03上刷新环境变量
source /etc/profile
3、Hbase的运行
启动、停止Hbase集群
start-hbase.sh
stop-hbase.sh
查看hadoop01的进程
jps
2517 HBaseConfTool
2886 Jps
2712 HMaster
2841 HRegionServer
查看hadoop02的进程
jps
2210 HRegionServer
2258 Jps
查看hadoop03的进程
jps
2227 HRegionServer
2275 Jps
1946 JournalNode
登录Hbase的Web界面
http://hadoop01:16010
4、Hbase的高可用配置
Hbase的高可用的配置很简单,在hbase的conf/目录下创建一个backup-masters文件,
在里面添加参数即可。Hbase的高可用与hadoop高可用相似,当集群启动后,每台虚拟机上
都存在HMaster进程,但是只有一台虚拟机的HMaster进程是处于活跃状态的,其他处于
待机状态,当处于活跃状态的HMaster进程因为某些原因停止,其他两台处于待机的HMster进程,
则会随机一台处于活跃状态保证Hbase集群的正常使用。
在此之前,先停止hbase
stop-hbase.sh
配置内容如下
hadoop02
hadoop03
分发至其他节点
scp -r backup-masters hadoop02:/export/servers/hbase/conf/
scp -r backup-masters hadoop03:/export/servers/hbase/conf/
再次启动,可在页面查看变化