1.引言
在前面的博客中我们介绍HBase
的伪分布安装,在本篇博客中就主要介绍一下HBase
的集群部署,由于HBase
是一款Hadoop
之上的NoSQL
数据库,因此我们在安装HBase
之前需要首先部署Hadoop
的集群,其次HBase
需要使用zookeeper
进行管理,因此我们也需要搭建zookeeper
集群,在本篇博客主要搭建的集群有:
-
zookeeper
集群 -
Hadoop
集群(由于在本篇博客中,博主配置了hadoop
的自动切换NameNode
,因此配置Hadoop
集群之前需要配置zookeeper
) -
Hbase
集群
在本篇博客中使用到的环境有:
- 操作系统为:
Centos6.7
-
jdk
的版本为:1.7
-
jdk
的安装路径为:/usr/local/jdk
-
hadoop
的版本为:2.6.1
-
hadoop
的安装路径为:/usr/local/hadoop
-
zookeeper
的版本为:3.4.9
-
zookeeper
的安装路径为:/usr/local/zookeeper
-
hbase
的版本为:1.2.6
-
hbase
的安装路径为:/usr/local/hbase
- 使用
root
用户进行集群搭建
接下来我将按照下表进行搭建Hadoop
集群:
HOST 名称 |
ip 地址 |
运行的进程 |
---|---|---|
hadoop1 | 192.168.159.130 | NameNode,ResourceManger,JournalNode,QuorumPeerMain,DFSZKFailoverController,HMaster |
hadoop2 | 192.168.159.131 | NameNode,JournalNode,QuorumPeerMain,DFSZKFailoverController |
hadoop3 | 192.168.159.132 | DataNode,NodeManger,JournalNode,QuorumPeerMain,HRegionServer |
hadoop4 | 192.168.159.133 | DataNode,NodeManger,HRegionServer |
hadoop5 | 192.168.159.134 | DataNode,NodeManger,HRegionServer |
2. 搭建Hadoop
集群
如何搭建Hadoop
自动切换NameNode
的集群,请参考链接:Hadoop 2.6.1 集群部署—自动切换HA
在上面的链接中介绍了如何搭建zookeeper
集群和hadoop
集群,搭建完成后,实现了以下表格的内容,因此接下来我们只需要在此基础上搭建HBase
集群即可。
HOST 名称 |
ip 地址 |
运行的进程 |
---|---|---|
hadoop1 | 192.168.159.130 | NameNode,ResourceManger,JournalNode,QuorumPeerMain,DFSZKFailoverController |
hadoop2 | 192.168.159.131 | NameNode,JournalNode,QuorumPeerMain,DFSZKFailoverController |
hadoop3 | 192.168.159.132 | DataNode,NodeManger,JournalNode,QuorumPeerMain |
hadoop4 | 192.168.159.133 | DataNode,NodeManger |
hadoop5 | 192.168.159.134 | DataNode,NodeManger |
3. 搭建HBase
集群
3.1 解压HBase并改名
//解压HBase安装包
tar -zxvf hbase-1.2.6-bin.tar.gz -C /usr/local/
//进入/usr/local/目录
cd /usr/local/
//修改文件夹名称
mv hbase-1.2.6 hbase
3.2 修改配置
- 修改配置文件
conf/hbase-env.sh
//编辑conf/hbase-env.sh配置文件
vim conf/hbase-env.sh
//修改的配置文件内容
export JAVA_HOME=/usr/local/jdk
export HBASE_MANAGES_ZK=false
//备注:命令行模式下,输入“/HBASE_MANAGES_ZK”可查找HBASE_MANAGES_ZK的位置
- 修改配置文件
conf/hbase-site.xml
<!-- hbase.rootdir 代表了hbase在hadoop的地址 value:因为我们配置了hadoop的HA,所以添加集群的逻辑名cluster1,如果没有配置HA,写绝对名称,比如:hdfs://hadoop1:9000/hbase hbase.cluster.distributed hbase的部署模式 value:因为我们是分布式,所以选择true hbase.zookeeper.quorum hbase需要zookeeper调度,设置zookeeper的地址 value:需要和自己情况对应,我的为:hadoop1,hadoop2,hadoop3 -->
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://cluster1/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop1,hadoop2,hadoop3</value>
</property>
</configuration>
- 将
hadoop
的HA
配置拷贝到conf
目录下面(如果hadoop
未配置HA
,就不需要此步骤)
//将hadoop的hdfs-site.xml拷贝到hbase的conf下面
cp /usr/local/hadoop/etc/hadoop/hdfs-site.xml /usr/local/hbase/conf/
//将hadoop的core-site.xml拷贝到hbase的conf下面
cp /usr/local/hadoop/etc/hadoop/core-site.xml /usr/local/hbase/conf/
- 编辑配置文件
regionservers
//编辑文件regionservers
vim regionservers
//编辑内容如下:
hadoop3
hadoop4
hadoop5
- 将
hbase
分发到hadoop3,hadoop4,hadoop5
节点
scp -rq /usr/local/hbase hadoop3:/usr/local
scp -rq /usr/local/hbase hadoop4:/usr/local
scp -rq /usr/local/hbase hadoop5:/usr/local
3.3 启动hbase
集群
- 命令启动
hbase
集群
//启动集群之前,首先保证hdfs进程和zookeeper进程启动正常
bin/start-hbase.sh
- 访问web界面,查看
hbase
是否启动成功(http://hadoop1:16010)