版本选择
这里的选择是hadoop2.10.1 HBase2.3.5
1.zookeeper安装
2.Hadoop安装
3.下载安装包
https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.3.5/hbase-2.3.5-src.tar.gz
4.压缩到指定目录
[hadoop@hadoop1 ~]$ tar -zxvf hbase-1.2.6-bin.tar.gz -C /usr/local/
5.修改配置文件
5.1修改hbase-env.sh
[hadoop@hadoop1 conf]$ vi hbase-env.shexport JAVA_HOME=/usr/local/jdk1.8export HBASE_MANAGES_ZK=false
5.2修改hbase-site.xml
[hadoop@hadoop1 conf]$ vi hbase-site.xml<configuration><property><!-- 指定 hbase 在 HDFS 上存储的路径 --><name>hbase.rootdir</name><value>hdfs://myha01/hbase126</value></property><property><!-- 指定 hbase 是分布式的 --><name>hbase.cluster.distributed</name><value>true</value></property><property><!-- 指定 zk 的地址,多个用“,”分割 --><name>hbase.zookeeper.quorum</name><value>hadoop1:2181,hadoop2:2181,hadoop3:2181,hadoop4:2181</value></property></configuration>
5.3修改regionservers
[hadoop@hadoop1 conf]$ vi regionservershadoop1hadoop2hadoop3hadoop4
5.4修改backup-masters
[hadoop@hadoop1 conf]$ vi backup-mastershadoop4
5.5修改hdfs-site.xml和core-site.xml
最重要一步,要把 hadoop 的 hdfs-site.xml 和 core-site.xml 放到 hbase-1.2.6/conf 下
[hadoop@hadoop1 conf]$ cd ~/apps/hadoop-2.7.5/etc/hadoop/[hadoop@hadoop1 hadoop]$ cp core-site.xml hdfs-site.xml ~/apps/hbase-1.2.6/conf/
5.6将HBase安装包分发到其他节点
分发之前先删除HBase目录下的docs文件夹,
[hadoop@hadoop1 hbase-1.2.6]$ rm -rf docs/[hadoop@hadoop1 apps]$ scp -r hbase-1.2.6/ hadoop2:$PWD[hadoop@hadoop1 apps]$ scp -r hbase-1.2.6/ hadoop3:$PWD[hadoop@hadoop1 apps]$ scp -r hbase-1.2.6/ hadoop4:$PWD
5.7配置环境变量
所有服务器都有进行配置
[hadoop@hadoop1 apps]$ vi /etc/profile#HBaseexport HBASE_HOME=/home/hadoop/apps/hbase-1.2.6export PATH=$PATH:$HBASE_HOME/bin[hadoop@hadoop1 apps]$ source ~/.bashrc
启动HBase集群
1.启动zookeeper集群
每个zookeeper节点都要执行以下命令
[hadoop@hadoop1 apps]$ zkServer.sh startZooKeeper JMX enabled by defaultUsing config: /home/hadoop/apps/zookeeper-3.4.10/bin/../conf/zoo.cfgStarting zookeeper ... STARTED[hadoop@hadoop1 apps]$
2.启动HDFS集群以及YARN集群
如果需要运行MapReduce程序则启动yarn集群,否则不需要启动
[hadoop@hadoop1 apps]$ start-dfs.shStarting namenodes on [hadoop1 hadoop2]hadoop2: starting namenode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-namenode-hadoop2.outhadoop1: starting namenode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-namenode-hadoop1.outhadoop3: starting datanode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop3.outhadoop4: starting datanode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop4.outhadoop2: starting datanode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop2.outhadoop1: starting datanode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop1.outStarting journal nodes [hadoop1 hadoop2 hadoop3]hadoop3: starting journalnode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-journalnode-hadoop3.outhadoop2: starting journalnode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-journalnode-hadoop2.outhadoop1: starting journalnode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-journalnode-hadoop1.outStarting ZK Failover Controllers on NN hosts [hadoop1 hadoop2]hadoop2: starting zkfc, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-zkfc-hadoop2.outhadoop1: starting zkfc, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-zkfc-hadoop1.out[hadoop@hadoop1 apps]$
启动完成之后检查以下namenode的状态
[hadoop@hadoop1 apps]$ hdfs haadmin -getServiceState nn1standby[hadoop@hadoop1 apps]$ hdfs haadmin -getServiceState nn2active[hadoop@hadoop1 apps]$
3.启动HBase
保证 ZooKeeper 集群和 HDFS 集群启动正常的情况下启动 HBase 集群 启动命令:start-hbase.sh,在哪台节点上执行此命令,哪个节点就是主节点
[hadoop@hadoop1 conf]$ start-hbase.shstarting master, logging to /home/hadoop/apps/hbase-1.2.6/logs/hbase-hadoop-master-hadoop1.outJava HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0hadoop3: starting regionserver, logging to /home/hadoop/apps/hbase-1.2.6/logs/hbase-hadoop-regionserver-hadoop3.outhadoop4: starting regionserver, logging to /home/hadoop/apps/hbase-1.2.6/logs/hbase-hadoop-regionserver-hadoop4.outhadoop2: starting regionserver, logging to /home/hadoop/apps/hbase-1.2.6/logs/hbase-hadoop-regionserver-hadoop2.outhadoop3: Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0hadoop3: Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0hadoop4: Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0hadoop4: Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0hadoop2: Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0hadoop2: Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0hadoop1: starting regionserver, logging to /home/hadoop/apps/hbase-1.2.6/logs/hbase-hadoop-regionserver-hadoop1.outhadoop4: starting master, logging to /home/hadoop/apps/hbase-1.2.6/logs/hbase-hadoop-master-hadoop4.out[hadoop@hadoop1 conf]$
观看启动日志可以看到:
(1)首先在命令执行节点启动 master
(2)然后分别在 hadoop02,hadoop03,hadoop04,hadoop05 启动 regionserver
(3)然后在 backup-masters 文件中配置的备节点上再启动一个 master 主进程
验证是否正常启动
1.检查各进程是否启动正常
主节点和备用节点都启动 hmaster 进程
各从节点都启动 hregionserver 进程



按照对应的配置信息各个节点应该要启动的进程如上图所示
2.通过访问浏览器页面
hadoop1
http://hadoop1:16010/master-status
hadoop4
http://hadoop4:16010/master-status
3.验证高可用
[root@hadoop1 ~]# jps37266 NameNode39444 HRegionServer2421 QuorumPeerMain2517 JournalNode37879 JobHistoryServer39739 Jps31486 DFSZKFailoverController39262 HMaster[root@hadoop1 ~]# kill -9 39262
4.如果有节点相应的进程没有启动,可以手动启动
启动HMaster进程
[root@hadoop1 ~]# jps37266 NameNode39444 HRegionServer2421 QuorumPeerMain2517 JournalNode31486 DFSZKFailoverController40382 Jps[root@hadoop1 ~]# hbase-daemon.sh start masterrunning master, logging to /usr/local/hbase-2.3.5//logs/hbase-root-master-hadoop1.out[root@hadoop1 ~]# jps37266 NameNode39444 HRegionServer2421 QuorumPeerMain2517 JournalNode40474 HMaster40603 Jps31486 DFSZKFailoverController


