1.下载:
hbase-0.98.2-hadoop2-bin.tar.gz
http://apache.dataguru.cn/hbase/hbase-0.98.2/
2.解压缩:
tar -zxvf hbase-0.98.2-hadoop2-bin.tar.gz
3.配置:
3.1 修改Hbase的一些默认环境配置:
vim conf/hbase-env.sh
export JAVA_HOME=/usr/home/xuhui/lib/jvm/jdk1.
7
.0_45
export HBASE_MANAGES_ZK=
false (HBASE_MANAGES_ZK默认是true,说明是让Hbase 单独管理 zookeeper。如果你机器上已经安装好了分布式Zookeeper,那么可以设定为fals;否则就不需要修改。)
注意:一定要修改系统环境变量 /etc/profile,添加HBASE_HOME=/home/xuhui/hadoop2.2.0/hbase-0.98.2-hadoop2,
并且修改后要运行:source /etc/profile 使修改后的环境变量生效!!!!我曾为这个问题折腾了几天
3.2修改hbase-site.xml文件,并在里面添加如下的配置:
vim conf/hbase-site.xml
<property> <name>hbase.rootdir</name> <value>hdfs://cloud001:9000/hbase</value> </property> <property> <name>hbase.master</name> <value>hdfs://cloud001:60000</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>cloud001,cloud002</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/wyp/zookeeper</value> </property> <property> <name>hbase.client.scanner.caching</name> <value>200</value> </property> <property> <name>hbase.balancer.period</name> <value>300000</value> </property> <property> <name>hbase.client.write.buffer</name> <value>10485760</value> </property> <property> <name>hbase.hregion.majorcompaction</name> <value>7200000</value> </property> <property> <name>hbase.hregion.max.filesize</name> <value>67108864</value> </property> <property> <name>hbase.hregion.memstore.flush.size</name> <value>1048576</value> </property> <property> <name>hbase.server.thread.wakefrequency</name> <value>30000</value> </property>
<property>
<name>hbase.master.maxclockskew</name>
<value>180000</value>
<description>Time difference of regionserver from master</description>
</property>
请注意上面的hbase.rootdir、hbase.zookeeper.quorum以及hbase.zookeeper.property.dataDir的配置;其中hbase.rootdir对应Hadoop的$HADOOP_HOME/etc/hadoop/core-site.xml文件中fs.defaultFS的值;hbase.zookeeper.quorum的值就是Zookeeper配置的几台机器的hostname;hbase.zookeeper.property.dataDir对应Zookeeper的$ZOOKEEPER/conf/zoo.cfg文件中dataDir属性的值。
注意:
hbase.master.maxclockskew是一个时间截设置,根据master和Hregionserver之间的网络情况而定
3.3 修改regionservers 文件配置,这个文件是用来指定regionserver的机器的:
vim regionservers
在里面添加如下内容,一台机器名一行 到底需要选择什么机器作为regionserver可以根据你自己的情况来决定 cloud0023.4 同样将配置好的hbase打包,分发到cloud002等中:
tar -zcf hbase.tar.gz
hbase-0.98.2-hadoop2
scphbase-0.98.2
-hadoop2
.tar.gz xuhui@cloud002:/home/xuhui/hadoop2.2/
3.5分别登录到cloud002等解压刚刚发送的hbase-0.98.2
-hadoop2
.tar.gz文件
tar -zxf /home/xuhui/hadoop2.2/hbase-0.98.2
-hadoop2
.tar.gz
4.分别启动master、regionserver等进程:
4.1在master启动master进程
$HBASE_HOME/bin/hbase-daemon.sh start master
4.2在cloud002中启动regionserver进程
$HBASE_HOME/bin/hbase-daemon.sh start regionserver
5.检查Hbase是否成功部署
打开http://cloud002:60010,如果能进去,说明安装成功!
6. 异常
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.ipc.RpcServerException): Unknown out of band call #-2147483647 at org.apache.hadoop.ipc.Client.call(Client.java:1347) at org.apache.hadoop.ipc.Client.call(Client.java:1300) ................................... at com.sun.proxy.$Proxy13.getFileInfo(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.lang.reflect.Method.invoke(Method.java:606) ................................... at com.sun.proxy.$Proxy13.getFileInfo(Unknown Source)这是因为Hbase0.96中所用的Hadoop jar包和Hadoop 2.2.0中的相关Jar包不一致,请用Hadoop-2.2.0中的share/hadoop文件夹下面的jar包替换Hbase中lib下面的相应包。然后再重启Hbase即可。