我是在hadoop1.2.1版本的基础上安装0.98.6版本的hbase。
安装步骤前面和安装HBase单机模式是一样的
(可参考我的另一篇文章:
http://blog.csdn.net/zhangxbj/article/details/40112529)
假设已经装好了hadoop1.2.1,然后我们现在就下载hbase-0.98.6.1-hadoop1-bin.tar.gz
假如hadoop的安装目录为/usr/hadoop/hadoop-1.2.1, 并计划将HBase安装在/usr/hadoop下,首先下载稳定版的HBase安装包并解压到/usr/hadoop目录下面。
$ tar xfz hbase-0.98.6.1-hadoop1-bin.tar.gz
$ mv hbase-0.98.6.1-hadoop1-bin /usr/hadoop
之后把/usr/hadoop目录下的hbase-0.98.6.1-hadoop1-bin文件夹右键重命名为hbase-0.98.6,方便后面操作而已。
安装hbase前的配置文件修改
1)进入解压后的hbase文件夹,进入conf目录编辑hbase-env.sh文件,启用配置文件内这三项配置,去掉前面的“#”号,再修改配置就行了,具体如下:
export JAVA_HOME=/usr/local/lib/jdk1.7.0_67 (设定本机jdk安装目录,这里是我本机的路径)
export HBASE_Classpath=/home/hadoop/usr/hadoop/hadoop-1.2.1/conf (指定本机hadoop安装的配置文件所在的目录,这里是我本机的路径)
export HBASE_MANAGES_ZK=true
(值默认是true作用是让Hbase启动的时候同时也启动zookeeper,让Hbase使用一个现有的不被Hbase托管的Zookeep集群,需要设置为 false)
2)接着修改conf目录下的hbase-site.xml文件,添加如下配置内容:
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value> (这里要和hadoop配置的一样)
</property>
hbase.rootdir属性解释:这里用来设置region server的共享目录,用来持久化Hbase。URL需要是'完全正确'的,还要包含文件系统的scheme。例如,要表示hdfs中的'/hbase'目录,namenode 运行在node1的9090端口。则需要设置为hdfs://node1:49002/hbase。默认情况下Hbase是写到/tmp的。不改这个配置,数据会在重启的时候丢失。默认: file:///tmp/hbase-${user.name}/hbase
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
hbase.cluster.distributed属性解释:Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JVM里面。默认: false
<property>
<name>dfs.replication</name>
<value>1</value> (伪分布设置为1)
</property>
3)让hbase0.98.6支持hadoop1.2.1(可以省略,0.98.6完美支持hadoop1.2.1,如果是其他版本hbase可能需要这步)
将hadoop主目录下的hadoop-core-1.2.1.jar文件复制到hbase/lib目录下去,将hbase/lib 目录下老得hadoop-core-1.0.4.jar文件删除
再将hadoop/lib目录下的commons-collections-3.2.1.jar和commons-configuration-1.6.jar文件复制到hbase/lib目录下去。
4)启动hbase
进入hbase的解压目录下的bin文件夹,执行start-hbase.sh脚本或者在linux下执行shell命令
# cd /home/hbase/bin
# start-hbase.sh
(启动hbase时如果报错,说明hbase没有安装正确,可能是配置文件没有配好,请仔细检查配置文件)
启动完成,我们可以输入命令来验证需要的服务进程是否都起来了。输入命令:
# /usr/local/lib/jdk1.7.0_67/bin/jps