Zookeeper集群搭建

Zookeeper集群搭建

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,用于管理大型主机,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 ZooKeeper 通过其简单的架构和 API 解决了这个问题。ZooKeeper 允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。 ZooKeeper 框架最初是在“Yahoo!“上构建的,用于以简单而稳健的方式访问他们的应用程序。 后来,Apache ZooKeeper 成为 Hadoop,HBase 和其他分布式框架使用的有组织服务的标准。 例如,Apache HBase 使用 ZooKeeper 跟踪分布式数据的状态。

1.服务器准备

搭建了3台Centos7虚拟机,都装有JDK1.8

第一台 :192.168.42.101 开放端口有218128883888

第二台 :192.168.42.102 开放端口有218128883888

第三台 :192.168.42.103 开放端口有218128883888

2. 下载安装

下载地址:版本自行选择,这里以zookeeper 3.4.6为例 上传安装包到各个虚拟机/opt目录下 解压安装包并进入zookeeper的目录

5. 创建data文件夹并修改zookeeper/conf下的 zoo_sample.cfg为zoo.cfg

6. 修改配置文件zoo.cfg

$指向第五步创建的data文件夹
dataDir=/opt/zookeeper/data
$添加到文件末尾
server.1=192.168.42.101:2888:3888
server.2=192.168.42.102:2888:3888
server.3=192.168.42.103:2888:3888

7. 进入第五步创建的data文件夹并新建文件myid修改文件内容为当前主机的server编号

即server.1 =192.168.42.101主机里面的zookeeper/data/myid内容为 1

8. 给其他两台主机进行配置

9. 依次各个主机的zookeeper服务

/opt/zookeeper/bin/akServer.sh start

注:添加自启动

echo “/opt/zookeeper/bin/akServer.sh start” » /etc/rc.d/rc.local

docker-compose

version: "3"
services:
    zoo1:
        image: zookeeper
        restart: on-failure:3
        environment:
            TZ: Asia/Shanghai
            ZOO_MY_ID: 1
            ZOO_SERVERS: server.1=0.0.0.0:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
        networks:
            net:
                ipv4_address: 172.0.0.1
    zoo2:
        image: zookeeper
        restart: on-failure:3
        environment:
            TZ: Asia/Shanghai
            ZOO_MY_ID: 2
            ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=0.0.0.0:2888:3888;2181 server.3=zoo3:2888:3888;2181
        networks:
            net:
                ipv4_address: 172.0.0.2
    zoo3:
        image: zookeeper
        restart: on-failure:3
        environment:
            TZ: Asia/Shanghai
            ZOO_MY_ID: 3
            ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=0.0.0.0:2888:3888;2181
        networks:
            net:
                ipv4_address: 172.0.0.3
networks:
    net:
        driver: bridge
        ipam:
            driver: default
            config:
                -   subnet: 172.0.0.0/24
                    gateway: 172.0.0.254