基于hadoop集群的Zookeeper与Hbase搭建(二)

352 阅读3分钟

基于上一篇hadoop集群的搭建,接下来在集群中配置zookeeper与hbase。zookeeper主要的功能是提供hadoop与hbase的协调服务,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。接下来开始搭建zookeeper。关于zookeeper与hbase的安装版本以及hadoop集群安装的过程请看上一篇Hadoop集群高可用搭建(一)

一.Zookeeper安装

1.安装
首先将下载好的zookeeper文件放入/usr/local目录下,解压
tar -zxvf zookeeper-3.4.8.tar.gz
2.拷贝
之后进入zookeeper的conf目录,拷贝zoo_sample.cfg并重命名为zoo.cfg
cd /usr/local/hadoop/zookeeper-3.4.8/conf
cp zoo_sample.cfg zoo.cfg
3.修改
vim zoo.cfg

server.1=192.168.1.25:2888:3888
server.2=192.168.1.26:2888:3888
server.3=192.168.1.27:2888:3888
server.4=192.168.1.29:2888:3888

4.创建并编辑myid
在zookeeper根目录下创建zoo.cfg中配置的目录
mkdir data/zkData/ -p
创建并编辑文件
vi myid
输入1,即表示当前机器为在zoo.cfg中指定的server.1
1
保存退出
:wq
5.拷贝zookeeper到其他机器
cd /usr/local
scp -r zookeeper-3.4.8/ root@hadoop2:/usr/local/zookeeper
scp -r zookeeper-3.4.8/ root@hadoop3:/usr/local/zookeeper
scp -r zookeeper-3.4.8/ root@hadoop4:/usr/local/zookeeper
6.修改其他服务器的myid文件
由于在主服务器上myid文件配置的是1,相应的,其它服务器分别改为2,3,4
7.启动zookeeper集群 进入zookeeper/bin目录下,分别在四台服务器启动:
zkServer.sh start //启动
zkServer.sh stop //关闭
zkServer.sh status //查看状态
三台机器的zookeeper状态必须只有一个leader,其他都是follower。

Hbase高可用集群搭建

在hadoop集群中,为防止hbase出现宕机的情况,因此也需要想hadoop一样搭建hbase高可用,若主节点出现问题导致无法启动,则备用master会自动代替,以防止数据出现丢失的情况。

1.解压 先进入/usr/local/hadoop中,解压:
tar -zxvf hbase-1.2.5-bin.tar.gz
2.配置 进入hbase-1.2.5/conf/目录,修改配置文件:
cd hbase-1.2.5/conf/

记得创建配置文件中的pid目录

vi hbase-env.sh

export HBASE_MANAGES_ZK=false(这里禁用hbase自带的zookeeper,使用我们安装的zookeeper)
export JAVA_HOME=/usr/local/jdk
export HBASE_CLASSPATH=/usr/local/hadoop/etc/hadoop

vi hbase-site.xml

<!-- 设置HRegionServers共享目录,请加上端口号 -->
<property>
    <name>hbase.rootdir</name>
    <value>hdfs://hadoop1:9000/hbase</value>
</property>
<!-- 指定HMaster主机 -->
<property>
    <name>hbase.master</name>
    <value>60000</value>
</property>
<!-- 启用分布式模式 -->
<property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
</property>
<property>
    <name>hbase.hregion.max.filesize</name>
    <value>536870912</value>
</property>
<!-- 指定独立Zookeeper安装路径 -->
<property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/usr/local/hadoop/zookeeper</value>
</property>
<!-- 指定ZooKeeper集群端口 -->
<property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
</property>
<!-- 指定Zookeeper集群位置 -->
<property>
    <name>hbase.zookeeper.quorum</name>
    <value>hadoop1:2181,hadoop2:2181,hadoop3:2181,hadoop4:2181</value>
</property>
<property>
    <name>zookeeper.session.timeout</name>
    <value>60000000</value>
</property>
<property>
    <name>dfs.support.append</name>
    <value>true</value>
</property>
<property>
    <name>hbase.balancer.period</name>
    <value>300000</value>
</property>
<property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
</property>
<property>
  <name>hbase.regionserver.thrift.framed</name>
 <value>false</value>
</property>
<property>
  <name>hbase.regionserver.thrift.compact</name>
  <value>false</value>
</property>

vi regionservers
修改regionservers文件,因为当前是使用独立的Zookeeper集群,所以要指定RegionServers所在机器:

hadoop1
hadoop2
hadoop3
hadoop4

3.拷贝HBase到其他机器
scp -r hbase-1.2.5 root@hadoop2:/usr/local/hadoop
scp -r hbase-1.2.5 root@hadoop3:/usr/local/hadoop
scp -r hbase-1.2.5 root@hadoop4:/usr/local/hadoop
4、启动HBase
在主节点上启动hbase
cd /hbase/bin
./start-hbase.sh

注意:此时Hadoop集群应处于启动状态,并且是在主节点执行start-hbase.sh启动HBase集群,否则HMaster进程将在启动几秒后消失,而备用的HMaster进程需要在备用主节点单独启动,命令是:

./hbase-daemon.sh start master