对于全分布式的HBase安装,需要通过hbase-site.xml文档来配置本机的HBase特性,由于各个HBase之间通过zookeeper来进行通信,因此需要维护一组zookeeper系统,关于zookeeper的安装使用,参考《hadoop2.6完全分布式安装zookeeper3.4.6》
关于HBase的介绍,可以看这里《HBase简介》
1、安装Hbase
(1)下载hbase版本
下载地址:http://www.apache.org/dyn/closer.cgi/hbase/,在此路径下选择相应的版本下载,本次安装下载hadoop1.1.0.1版本
(2)解压hbase-1.1.0.1-bin.tar.gz
hadoop@master:~/opt$ tar zxvf hbase-1.1.0.1-bin.tar.gz
(3)将hbase添加到环境变量中
export HBASE_HOME=/home/hadoop/opt/hbase-1.1.0.1 export PATH=$HBASE_HOME/bin:$PATH
(4)修改配置文件
修改hbase-env.sh
export JAVA_HOME=/home/hadoop/opt/jdk1.8.0_65
修改hbase-site.xml
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://master:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>master,slave1</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/hadoop/opt/zookeeper-3.4.6</value> </property> </configuration>
修改regionservers,将文件内容设置为:
master
slave1
2、运行HBase
启动hbase时要确保hdfs已经启动,HBase的启动顺序为:HDFS->Zookeeper->HBase,运行命令如下:
hadoop@master:~/opt/hadoop-2.6.0$ bin/hdfs namenode -format hadoop@master:~/opt/hadoop-2.6.0$ sbin/start-dfs.sh hadoop@master:~/opt/zookeeper-3.4.6$ ./zkServer.sh start hadoop@master:~/opt/hbase-1.1.0.1$ start-hbase.sh
启动成功后集群会多出如下进程:
hadoop@master:~/opt/hbase-1.1.0.1$ jps
8145 SecondaryNameNode
7940 NameNode
8550 HRegionServer
5719 QuorumPeerMain
8600 Jps
8424 HMaster
运行成功后可以看到QuorumPeerMain进程
再看看slave1的进程:
hadoop@slave1:~/opt/zookeeper-3.4.6/bin$ jps
6915 QuorumPeerMain
7012 HRegionServer
7268 Jps
6823 DataNode
进入HBase Shell
hadoop@master:~/opt/hbase-1.1.0.1$ ./bin/hbase shell
输入status命令:
hbase(main):001:0> status
出现错误:
2015-05-25 20:26:14,949 ERROR [main] client.ConnectionManager$HConnectionImplementation: Can’t get connection to ZooKeeper: KeeperErrorCode = ConnectionLoss for /hbase
设置 conf/hbase-env.sh文件中的HBASE_MANAGES_ZK 属性为 false
问题搞定!
hbase(main):001:0> status
2 servers, 0 dead, 1.0000 average load