我的环境是:
hadoop 2.2.0
hbase 0.94.11
有5台机器:
baby19,baby18,baby17,baby16,baby15
一. 编译;
1.下载hbase,解压
2.hbase的pom.xml里面hadoop 2.0用的是2.0.0-alpha,编辑pom.xml,
把<hadoop.version>2.0.0-alpha</hadoop.version>
改成:<hadoop.version>2.2.0</hadoop.version>。
3.到hbase的安装目录下,执行如下语句:
${MAVEN_HOME}/bin/mvn-e -Dmaven.test.skip.exec=true -Dhadoop.profile=2.0 package
4.然后就是等待了,大概讲下各个参数的含义:
-e 编译时打印出详细错误信息
-Dmaven.test.skip.exec=true 编译时跳过测试步骤
-Dhadoop.profile=2.0 编译时使用hadoop.profile 2.0,也就是针对2.0的hadoop编译。
5,然后就是到target路径下找hbase-0.94.1.tar.gz的包,用这个包部署。
二. 安装部署
1.编辑hbase-site.xml,添加如下信息
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://baby20:8020/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>10.1.1.40:60000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>baby19,baby18,baby17,baby16,baby15</value>
</property>
</configuration>
说明一下:
a.hbase.rootdir为hbase在hdfs的存储路径,其中
hdfs://baby20:8020
要与hadoop的hdfs-site.xml中fs.defaultFS的配置一致
b.我这里没用单独的zookeeper,用的是hbase自己的,如果用已有的zookeeper,将HBASE_MANAGES_ZK设置为false
2.编辑hbase-env.xml
export HBASE_MANAGES_ZK=true
exportJAVA_HOME=/usr/lib/jvm/jdk1.7.0_21
3.编辑reginserver文件,把子节点都添加进去
baby15
baby16
baby17
baby18
baby19
4.分发文件到各主机
5.运行,执行bin下的start-hbase.sh开启hbase,执行stop-hbase.sh停止hbase
打开网页为 baby20:60010,也能看到hbase界面
三. 问题解决:
1.遇到FATALorg.apache.hadoop.hbase.master.HMaster: Unhandled exception.Starting shutdown.
java.io.IOException:Exception in makeDirOnFileSystem,权限不够的问题
hbase需要hadoop首先把之前设置的hbase.rootdir路径给设置好,并且赋予hbase用户权限
我的hadoop的hdfs是用hdfs用户起来的,hbase使用hbase用户管理的,所以执行如下操作
Hdfs帐号建一个hbase目录
hadoopfs mkdir /hbase
然后把所有者改为hbase
hadoop fs -chown-R hbase /hbase
2.遇到版本不一致的问题:
java.lang.VerifyError:classorg.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$AppendRequestProtooverrides final method getUnknownFields.()Lcom/google/protobuf/UnknownFieldSet;
这个的原因是 hadoop lib下的protobuf和hbase lib 下的protobuf版本不一致,把hbase的jar包替换一下就可以了,详见
http://blog.csdn.net/teddeyang/article/details/16339503