前置条件
- Zookeeper集群安装并运行
- Hadoop集群安装并运行
- Java8已安装
版本选择
根据官网的版本提示自行选择要匹配的版本: https://hbase.apache.org/book.html#basic.prerequisites
在这里,我的hadoop-2.7.7,选择的Hbase版本为hbase-1.4.13
安装
Zookeeper集群安装
参考: https://www.cnblogs.com/liuyinzhou/p/13495474.html
Hadoop集群安装
参考: https://www.cnblogs.com/liuyinzhou/p/13495503.html
Hbase安装
下载安装包
下载地址: http://mirrors.hust.edu.cn/apache/hbase/1.4.13/hbase-1.4.13-bin.tar.gz
修改配置文件
修改hbase-env.sh
export JAVA_HOME=/usr/local/java
export HBASE_MANAGES_ZK=false
注释以下两行
# export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10101"
# export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10102"
修改hbase-site.xml
<configuration>
<property>
<!-- 指定 hbase 在 HDFS 上存储的路径 -->
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<!-- 指定 hbase 是分布式的 -->
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<!-- 指定 zk 的地址,多个用“,”分割 -->
<name>hbase.zookeeper.quorum</name>
<value>master:2181,slave:2181</value>
</property>
</configuration>
注意:hbase.rootdir中HDFS的地址一定要与Hadoop配置文件core-site.xml中配置相同!!!
修改regionserver
master
slave
修改backup-masters
slave
backup-masters可以有多个且在不同的节点上,在集群启动时会在相应的节点启动HMaster进程做高可用
配置环境变量
export JAVA_HOME=/usr/local/java
export HBASE_HOME=/opt/hbase-1.4.13
export HADOOP_HOME=/opt/hadoop-2.7.7
export HADOOP_CONF_DIR=/opt/hadoop-2.7.7/etc/hadoop
export PATH=$JAVA_HOME/bin:$HBASE_HOME/bin:$HADOOP_HOME/sbin:$PATH
确保所有节点已配置且生效,其中,若不配置HBASE_HOME环境变量会导致Hbase无法找到Hadoop相关依赖从而导致启动失败
同步集群时钟
HBase 集群对于时间的同步要求的比 HDFS 严格,所以,集群启动之前千万记住要进行时钟同步,要求相差不要超过 30s.
分发安装包
yizhou@master:/opt/hbase-1.4.13$ scp -r /opt/hbase-1.4.13 slave:/opt/
集群启动
验证Zookeeper集群
在所有节点上执行
yizhou@master:/opt/zookeeper-3.4.14$ ./bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.14/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
yizhou@slave:/opt/zookeeper-3.4.14$ ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: leader
验证Hadoop集群
yizhou@master:~$ jps
9283 NodeManager
8629 DataNode
8421 NameNode
9449 Jps
8926 ResourceManager
yizhou@slave:/opt/zookeeper-3.4.14$ jps
3616 Jps
3010 HRegionServer
13234 NodeManager
12099 QuorumPeerMain
13092 SecondaryNameNode
3225 HMaster
12923 DataNode
启动Hbase
在哪一个节点执行,哪一个节点就是HMaster
yizhou@master:/opt/hbase-1.4.13$ ./bin/start-hbase.sh
running master, logging to /opt/hbase-1.4.13/logs/hbase-yizhou-master-master.out
master: running regionserver, logging to /opt/hbase-1.4.13/bin/../logs/hbase-yizhou-regionserver-master.out
slave: running regionserver, logging to /opt/hbase-1.4.13/bin/../logs/hbase-yizhou-regionserver-slave.out
slave: running master, logging to /opt/hbase-1.4.13/bin/../logs/hbase-yizhou-master-slave.out
验证Master节点
yizhou@master:/opt/zookeeper-3.4.14$ jps
16483 HMaster
9283 NodeManager
8629 DataNode
8421 NameNode
9880 QuorumPeerMain
8926 ResourceManager
21982 Jps
16718 HRegionServer
在Master节点上出现了HMaster和HRegionServer进程,master节点启动成功!
验证其余Slave节点
yizhou@slave:/opt/zookeeper-3.4.14$ jps
3616 Jps
3010 HRegionServer
13234 NodeManager
12099 QuorumPeerMain
13092 SecondaryNameNode
3225 HMaster
12923 DataNode
在上面的配置文件中,我们设置了后备HMaster是slave,且slave也是HRegionServer,故在slave节点上有HMaster和HRegionServer两个进程,故slave节点启动正常.
若出现了部分slave节点启动失败,可以使用以下名称手动启动HRegionServer
yizhou@master:/opt/hbase-1.4.13$ ./bin/hbase-daemon.sh start regionserver
WEB UI
默认地址: http://master:16010/master-status
至此,Hbase集群启动成功!