ZooKeeper 集群搭建

zookeeper对hadoop而言并不是重点,但却是实现HBase的一个重要协调工具。

一、准备

安装用的ZooKeeper可在这个镜像站点下载。我安装使用的zookeeper版本是zookeeper-3.4.6.tar.gz。

1.1 zookeeper是什么

  • zookeeper提供了一种针对hadoop的分布式协调服务

  • 它包含一个简单的原语集,在命令行界面针对它的操作都是一些简单的命令

  • 分布式应用程序基于它可实现同步服务(数据的事务性一致)、配置服务以及命名服务

1.2 为什么使用zookeeper

一句话总结,zookeeper的使用保证了zookeeper集群之间数据的事务(原子操作atom,要么全部成功,要么全部失败)性一致

ZooKeeper 要想实现自己的功能(事务性一致),要求在 ZooKeeper 集群之间传递的数据不能太大(默认在 2M 以下),

如何理解 ZooKeeper 提供的事务性一致。如果一个 client 对 ZooKeeper 的某一服务器做了一次数据变更,ZooKeeper 会将这一变化同步到所有的服务器上,当同步结束之后,所有的客户端都将获得该数据变更;

二、 搭建 ZooKeeper 服务器集群

首先需明确的是,我们要进行搭建的是ZooKeeper的服务器集群,也即许多服务器服从ZooKeeper的要求联接起来的。集群中的服务器又分1个leader,和其他的follower,一个老大,一群小弟。

ZooKeeper 要求,zk 服务器集群规模不小于三个节点,本文我们就以三个节点为例进行搭建,且要求各服务器之间的系统时间要保持一致(可见各主机的系统时间是 ZooKeeper 实现数据在集群间传输的重要依据指标)。

搭建环节如下

ZooKeeper 下载地址 http://www.us.apache.org/dist/zookeeper/,下载完成之后,解压,设置环境变量,修改配置文件。

  • (1)解压

    tar -zxvf zookeeper-3.4.8.tar.gz
  • (2)设置环境变量

    vim /etc/profile
                # 添加:
                # export .:/usr/local/zookeeper-3.4.8/bin:$PATH
    source /etc/profile
  • (3)修改配置文件

    我们直接修改 conf 文件夹下的 zoo_sample.cfg(也即示例配置文件),进行相关配置,事实上,我们也仅做两次修改(首先将其重命名为zoo.cfg)。

    • dataDir

      将其修改为:
      dataDir=/usr/local/zookeeper/data
                      # 也即在ZooKeeper根目录下创建
                      # data文件文件夹
                      # 因为默认的/tmp/zookeeper会随着系统的关闭重启而清空
    • 在该配置文件的末尾添加:

      server.0=hadoop0:2888:3888
                      # server.0 表示 server 的编号
                      # hadoop0表示节点主机名
                      # 2888/3888:端口号
                      # 一个端口用来传输数据
                      # 一个端口则用来在ZooKeeper服务器集群中选举产生leader
      server.1=hadoop1:2888:3888
      server.2=hadoop2:2888:3888
  • (4)将配置文件中添加的 server.0(服务器编号) 与主机名相对应

    首先需要为ZooKeeper创建一个data的文件夹,根据对配置文件的第一处修改,也即将dataDir的内容修改为/usr/local/zookeeper/data
    在该路径下:

    vim myid
                            # 在myid文件中填写内容为:0
  • (5)将当前节点的ZooKeeper文件夹拷贝到其他节点(以及/etc/profile文件),并相应地修改/data/myid文件为各自的编号;

启动

在三个节点上分别启动:zkServer.sh start,分别启动时,会在各自的/zookeeper/bin/目录下生成zookeeper.out日志文件,我们会看到在zoo.cfg配置文件中添加的配对信息(ZooKeeper服务器与主机名),以及两个端口,我们看到3888是真正用来选举的,而2888自然是用来数据传输的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值