ZooKeeper 集群搭建

来源:互联网 发布:ubuntu打开pdf文件 编辑:程序博客网 时间:2024/06/05 20:08

  • 一准备
    • 1 zookeeper是什么
    • 2 为什么使用zookeeper
  • 二 搭建 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:$PATHsource /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服务器集群中选举产生leaderserver.1=hadoop1:2888:3888server.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
原创粉丝点击