HBase 集群安装部署

软件环境

OS: Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-32-generic x86_64)
Java: jdk1.7.0_75
Hadoop: hadoop-2.6.0
Hbase: hbase-1.0.0

集群机器:

IP HostName Mater RegionServer
10.4.20.30 master yes no
10.4.20.31 slave1 no yes
10.4.20.32 slave2 no yes

准备

假设你已经安装部署好了 Hadoop 集群和 Java,可以参考 Spark on YARN 集群部署手册 这篇文章。

下载解压

可以从官方下载地址下载 HBase 最新版本,推荐 stable 目录下的二进制版本。我下载的是 hbase-1.0.0-bin.tar.gz 。确保你下载的版本与你现存的 Hadoop 版本兼容(兼容列表)以及支持的JDK版本(HBase 1.0.x 已经不支持 JDK 6 了)。

解压缩

tar -zxvf hbase-1.0.0-bin.tar.gz
cd hbase-1.0.0

配置 HBase

编辑hbase-env.sh文件,修改 JAVA_HOME 为你的路径。

# The java implementation to use.  Java 1.7+ required.
export JAVA_HOME=/home/spark/workspace/jdk1.7.0_75

编辑conf/hbase-site.xml文件:

<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/spark/workspace/zookeeper/data</value>
</property>
</configuration>

其中第一个属性指定本机的hbase的存储目录,必须与Hadoop集群的core-site.xml文件配置保持一致;第二个属性指定hbase的运行模式,true代表全分布模式;第三个属性指定 Zookeeper 管理的机器,一般为奇数个;第四个属性是数据存放的路径。这里我使用的默认的 HBase 自带的 Zookeeper。

配置regionservers,在regionservers文件中添加如下内容:

slave1
slave2

regionservers文件列出了所有运行hbase的机器(即HRegionServer)。此文件的配置和Hadoop中的slaves文件十分相似,每行指定一台机器的主机名。当HBase启动的时候,会将此文件中列出的所有机器启动。关闭时亦如此。我们的配置意为在 slave1, slave2, slave3 上都将启动 RegionServer。

将配置好的 hbase 文件分发给各个 slave

scp -r hbase-1.0.0 spark@slave1:~/workspace/
scp -r hbase-1.0.0 spark@slave2:~/workspace/

修改 ulimit 限制

HBase 会在同一时间打开大量的文件句柄和进程,超过 Linux 的默认限制,导致可能会出现如下错误。

2010-04-06 03:04:37,542 INFO org.apache.hadoop.hdfs.DFSClient: Exception increateBlockOutputStream java.io.EOFException
2010-04-06 03:04:37,542 INFO org.apache.hadoop.hdfs.DFSClient: Abandoning block blk_-6935524980745310745_1391901

所以编辑/etc/security/limits.conf文件,添加以下两行,提高能打开的句柄数量和进程数量。注意将spark改成你运行 HBase 的用户名。

spark  -       nofile  32768
spark - nproc 32000

还需要在 /etc/pam.d/common-session 加上这一行:

session required pam_limits.so

否则在/etc/security/limits.conf上的配置不会生效。

最后还要注销(logout或者exit)后再登录,这些配置才能生效!使用ulimit -n -u命令查看最大文件和进程数量是否改变了。记得在每台安装 HBase 的机器上运行哦。

运行 HBase

在master上运行

cd ~/workspace/hbase-1.0.0
bin/start-hbase.sh

验证 HBase 成功安装

在 master 运行 jps 应该会有HMaster进程。在各个 slave 上运行jps 应该会有HQuorumPeer,HRegionServer两个进程。

在浏览器中输入 http://master:16010 可以看到 HBase Web UI 。