注:对于全分布式的HBase安装,需要通过hbase-site.xml文档来配置本机的HBase特性,由于各个HBase之间通过zookeeper来进行通信,因此需要维护一组zookeeper系统。
本次实在两台linux电脑中安装Hbase。
(1)下载hbase版本
本次安装下载hbase-1.2.0-bin.tar.gz版本
(2)解压hbase-1.2.0-bin.tar.gz
解压到路径/usr/local/Hbase文件夹下,并将对文件夹赋超级用户权限
(3)将hbase添加到环境变量中
export HBASE_HOME=/usr/local/hbase/hbase-1.2.0
export PATH=$HBASE_HOME/bin
(4)修改配置文件
修改hbase-env.sh
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_79
export HBASE_CLASSPATH=/usr/local/hadoop/etc/hadoop
export HBASE_MANAGES_ZK=false
修改hbase-site.xml
<configuration>
<property>
<name>hbase.rootdirname>
<value>hdfs://master:9000/hbasevalue>
property>
<property>
<name>hbase.cluster.distributedname>
<value>truevalue>
property>
<property>
<name>hbase.zookeeper.quorumname>
<value>master,slave1value>
property>
<configuration>
修改regionservers,将文件内容设置为:
Master
Slave
启动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
启动成功后集群会多出如下进程:
jps
如下:
8145 SecondaryNameNode
7940 NameNode
8550 HRegionServer
5719 QuorumPeerMain
8600 Jps
8424 HMaster
进入HBase Shell
hadoop@Master:usr/local/hbase/hbase-1.2.0$ ./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。
建议修改ulimit限制,因为HBase 会在同一时间打开大量的文件句柄和进程,超过 Linux 的默认限制,导致可能会出现如下错误。
2010-04-06 03:04:37,542 INFO org.apache.hadoop.hdfs.DFSClient: Exception increateBlockOutputStream java.io.EOFException
2010-04-06 03:04:37,542 INFO org.apache.hadoop.hdfs.DFSClient: Abandoning block blk_-6935524980745310745_1391901
所以编辑/etc/security/limits.conf文件,添加以下两行,提高能打开的句柄数量和进程数量。注意将hadoop改成你运行 HBase 的用户名。
hadoop - nofile 32768
hadoop - nproc 32000
还需要在 /etc/pam.d/common-session 加上这一行:
session required pam_limits.so
否则在/etc/security/limits.conf上的配置不会生效。
最后还要注销(logout或者exit)后再登录,这些配置才能生效!使用ulimit -n -u命令查看最大文件和进程数量是否改变了。记得在每台安装 HBase 的机器上运行。
运行 HBase
在Master上运行
bin/start-hbase.sh
验证 HBase 成功安装
在 master 运行 jps 应该会有HMaster进程。在各个 slave 上运行jps 应该会有HQuorumPeer,HRegionServer两个进程。
在浏览器中输入 http://master:16010 可以看到 HBase Web UI 。