环境为3台机器,并已经安装好了Hadoop,参见我前面的帖子
下载,解压
$ wget wget http://mirror.esocc.com/apache/hbase/hbase-0.94.5/hbase-0.94.5-bin.tar.gz
$ tar zxvf hbase-0.94.5-bin.tar.gz -C /l0
hbase-env.sh
在这个文件中要指明JDK 安装在了哪里
$ echo $JAVA_HOME
/usr/lib/jvm/java
$ vim conf/hbase-env.sh
取消JAVA_HOME
那一行的注释,设置正确的JDK位置
export JAVA_HOME=/usr/lib/jvm/java
conf/hbase-site.xml
内容如下
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://c1.N3.Domino.narwhal.pdl.cmu.local:9000/hbase</value> </property> <property> <name>hbase.master</name> <value>c1.N3.Domino.narwhal.pdl.cmu.local:60000</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>c1.N3.Domino.narwhal.pdl.cmu.local,c2.N3.Domino.narwhal.pdl.cmu.local,c3.N3.Domino.narwhal.pdl.cmu.local</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/l0/hbase-tmp/zookeeper</value> </property> <property> <name>hbase.regionserver.handler.count</name> <value>100</value> </property> <property> <name>hbase.client.scanner.caching</name> <value>1000</value> </property> </configuration>
hbase.rootdir
是HBase存放数据的目录,这个值应该从Hadoop集群的core-site.xml里的fs.defaultFS
或fs.default.name
拷贝过来。
接下来关于ZooKeeper的三项配置都是从ZooKeeper集群的zoo.cfg里拷贝过来的。
conf/regionservers
在这个文件里面添加slave,一行一个。
c2.N5.Domino.narwhal.pdl.cmu.local
c3.N5.Domino.narwhal.pdl.cmu.local
将这个文件夹拷贝到所有slaves
$ scp -r hbase-0.94.5/ hbase@c2.n5.domino.narwhal.pdl.cmu.local:/l0
启动
$ ./bin/start-hbase.sh
starting Master, logging to logs/hbase-user-master-example.org.out
查看一下进程,
$ jps
26142 HMaster
26255 HRegionServer
26360 Jps
启动了一个HMaster和一个HRegionServer。
检查是否启动成功
用jps
查看java进程。
在master上,应该有一个HMaster进程,在每台slave上,应该有一个HRegionServer进程。
Web UI
- HMaster: http://master:60010
- HRegionServer: http://slave:60030
客户端
想要在另一台机器,或者另一个用户下访问HBase,怎么办?把hbase的安装目录整个拷贝过来即可,不用任何配置(跟Hadoop想比简单多了)。
运行./bin/hbase shell
,就可以使用HBase集群了。