昨天用了一下午时间搭建HBase环境,相比于很多高手来说还是差了太多,但是比搭建Hadoop环境用了将近一个月时间却节约了不少。当时搭建Hadoop环境的时候,还没有接触过Linux。现在把我搭建HBase环境的过程和遇到的问题总结一下。

简单介绍一下我的环境
1. CentOS 6.5
2. Hadoop 2.2
3. jdk 1.7
4. HBase 0.98
5. Zookeeper 3.4

在官网下载HBase安装包

Hbase下载链接

hbase离线全套安装 hbase安装问题_hadoop

解压HBase,设置环境变量

进入HBase的安装目录,我的是在/usr/local/hbase (为了方便,我把解压出来的hbase-0.98-hadoop2文件夹拷贝了一份命名为hbase)

注意:下载页面里面有Hbase对应Hadoop版本信息,下载的时候注意区分。Hadoop1对应的是hadoop1.x版本。(因为此原因,之前hbase一直没法起来。)

hbase离线全套安装 hbase安装问题_hadoop_02

环境变量配置

hbase离线全套安装 hbase安装问题_zookeeper_03

使配置文件生效

# source  /etc/profile

解压hbase

#tar -xzvf hbase-0.98.20-hadoop2.bin.tar.gz

修改文件夹名字,并将权限赋值给普通用户hadoop

#cp -r hbase-0.98.20-hadoop2 hbase
#chown -R hadoop:hadoop hbase

进入普通用户hadoop,进入hbase文件夹

#su hadoop
$cd hbase

可以看到hbase下的文件权限全是hadoop了

hbase离线全套安装 hbase安装问题_Hadoop_04

修改配置文件
(这是很关键的一步,配置文件在$HBASE_HOME/conf/hbase-site.xml)
具体配置信息可以参考这个网页

这里有关于hbase配置的详细解释,我就不多做解释了。

这是我的配置文件

hbase离线全套安装 hbase安装问题_Hadoop_05


hbase.rootdir

表示HBase集群中所有RegionServer共享目录,用来持久化HBase的数据,我设置成了HDFS上的/hbase

(最好确保该目录存在,否则启动hbase的时候可能会报错。该项不识别ip,最好写上自己的用户名。)

hbase.cluster.distributed
集群的模式,分布式还是单机模式,如果设置成false的话,HBase进程和Zookeeper进程在同一个JVM进程。
因为我的是伪分布模式,所以这里设置成了true

hbase.zookeeper.quorum
zookeeper集群的URL配置,多个host中间用逗号(,)分割,默认值为localhost
因为我只有一个节点,直接设置成localhost,也可以不设置
(此项仅支持奇数个节点)

修改hbase-env.sh文件

hbase离线全套安装 hbase安装问题_zookeeper_06


(其中HBASE_MANAGES=false表示不使用hbase自带的zookeeper,如果不想麻烦直接使用,则改成true。)

修改regionservers文件,默认为localhost,所以我这里不进行修改

下载解压zookeeper,配置环境变量

官网下载地址
http://www.apache.org/dyn/closer.cgi/zookeeper/

环境变量之前在hbase环境变量配置的时候已经配置完成,这里就不多作介绍。
zookeeper解压完成后,像hbase一样,改名为zookeeper,将权限赋给hadoop。

进入$ZOOKEEPER_HOME/conf/
输入
$cp zoo_sample.cfg zoo.cfg
zookeeper详细配置解析

启动zookeeper

$cd bin
$./zkServer start

之后进入$HBASE_HOME,启动habse
输入

$cd bin
$start-hbase.sh

输入jps,可以看到,进程全部开启

hbase离线全套安装 hbase安装问题_hbase_07

输入

$hbase shell

进入hbase操作页面
输入

$status

查看信息

hbase离线全套安装 hbase安装问题_hadoop_08


我第一次开启是这种情况,上网查原因是hbase自带的jar与hadoop版本不匹配所致,进入hbase/lib目录,将其中的 slf4j-log4j12-1.6.4.jar移除再次启动,发现错误消失,hbase安装完成

hbase离线全套安装 hbase安装问题_hbase离线全套安装_09