HBase是Apache Hadoop的数据库,能够对大型数据提供随机、实时的读写访问。它的运行依赖于其他文件系统,如HDFS。
HBase 是一个在HDFS 上开发的面向列的分布式数据库。如果需要实时地随机读/写超大规模数据集,就可以使HBase 这一 Hadoop 应用。
HBase模仿并提供了基于Google文件系统(GFS)中的bigtable数据库的所有功能。
HBase的目标是存储并处理大型的数据,更具体来说是仅需要使用普通的硬件配置就能处理由成千上万的行和列所组成的大型数据。
HBase有三种运行模式,分别为:单机、伪分布式和全分布式。
本文主要介绍HBase的全分布式的安装与配置:
由于HBase是基于其他文件存储系统的,因此在分布式模式下安装Hadoop是必不可少的。
Hadoop的安装过程参见:Hadoop安装详解
另一个先决条件是安装了jdk1.6以上的JVM。
下面进入正题,安装全分布hbase。
1.HBase的下载与解压
下载地址:http://mirror.esocc.com/apache/hbase
下载stable版本:hbase-0.94.16.tar.gz
解压到指定的安装目录下:
tar -xzvf hbase-0.94.16.tar.gz
2.配置hbase-env.sh
在此文件中打开JAVA_HOME的配置并修改,如下所示;
# The java implementation to use. Java 1.6 required.
export JAVA_HOME=/usr/jdk1.7.0_45/
3.配置hbase-site.xml
hbase.rootdir
hdfs://master:9000/hbase
hbase.cluster.distributed
true
hbase.zookeeper.quorum
master,slave1,slave2
hbase.zookeeper.property.dataDir
/home/haduser/zookeeper/zookeeper-3.4.5/data
说明:全分布式的HBase集群需要Zookeeper实例运行,并且需要所有的HBase节点能够与Zookeeper实例通信。默认情况下Hbase自身维护着一组默认的Zookeeper实例。不过用户可以配置独立的Zookeeper实例,这样能使HBase系统更加健壮。
要使用独立的Zookeeper实例,需要修改conf/hbase-env.sh配置文件,修改其中的
export HBASE_MANAGES_ZK=false
默认值为true,如将其修改为false,表示不使用默认的Zookeeper实例。
有关Zookeeper集群的安装可以参见:Zookeeper的安装详解
4.配置regionservers
regionservers文件列出了所有运行hbase的机器(即HRegionServer)。此文件的配置和Hadoop中的slaves文件十分相似,每行指定一台机器的主机名。当HBase启动的时候,会将此文件中列出的所有机器启动。关闭时亦如此。
在此我们配置如下内容:
slave1
slave2
这就意味着,HBase RegionServer运行在slave1和slave2上面。
slave1
slave2
5. 向其它3个结点复制Hbase相关配置
scp -r HBase/ slave1:/home/haduser/HBase
scp -r HBase/ slave2:/home/haduser/HBase
6.添加HBase相关环境变量
#set hbase environment
export HBASE_HOME=/home/haduser/HBase/hbase-0.94.16
export PATH=$PATH:$HBASE_HOME/bin
8.启动Hbase
由于HBase是基于hdfs文件存储系统之上的,故应该先启动hdfs。另外,由于我们在此使用独立的Zookeeper实例,故需要先手动的启动Zookeeper实例。
确认Zookeeper启动之后,我们接下来启动HBase。如下图所示: