现在参与开发的一个项目的数据都落地到Hbase中,那么因为其他同事的机器都是Windows,对Hbase兼容不太好,于是就需要借助虚拟机、测试环境等方式使用linnux进行安装,虽然安装了不知道有多少遍Hbase集群,但是仅此作为一个流水账来记录了,毕竟,我才懒得记住那些参数。

基本环境要求

  • JDK1.7+ (推荐1.8
  • 非root用户 (培养习惯)
  • *unix操作系统 (通常只喜欢在windows下玩游戏)

使用Hbase自带的Zookeeper

下载Hbase最新稳定版

1
wget http://mirrors.shu.edu.cn/apache/hbase/stable/hbase-1.2.6-bin.tar.gz

解压,并配置环境变量

解压二进制安装包

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

配置环境变量

1
2
3
4
vim ~/.bashrc

exprot HBASE_HOME=/home/devuser/hbase-1.2.6
export PATH=$PATH:$HBASE_HOME/bin

新增Hbase配置

1
vim conf/hbase-site.xml 

内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///data/hbasedata</value>
<!-- 如果是HDFS的话,请修改为如下参数 -->
<value>hdfs://data/hbasedata</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>false</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/data/zkdata</value>
</property>
</configuration>

修改hbase-env.sh

1
2
export JAVA_HOME=/usr/local/java
export HBASE_MANAGES_ZK=true # 使用hbase自带的zookeeper

启动hbase

1
bin/start-hbase.sh

使用jps命令查看进程,此时正确的应该只有一个名为HMaster的进程,因为zk和regionserver的进程都包含在这个进程里。
这种做法适用于个人本地安装(macOS || linux)

使用外部Zookeeper

修改配置

如果使用外部Zookeeper的话,将上个步骤的HBASE_MANAGES_ZK的值改为false,并修改hbase-site.xml,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///data/hbasedata</value>
<!-- 如果是HDFS的话,请修改为如下参数 -->
<value>hdfs://data/hbasedata</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>zkserver01:2181,zkserver02:2181,zkserver03:2181</value>
</property>
</configuration>

修改slave为:

1
2
3
regionserver-01
regionserver-02
regionserver-03

###启动

1
bin/start-hbase.sh

此时,使用jps命令会发现有两个进程:

1
2
HMaster
Regionserver

一般测试环境会这么部署~