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
开放端口有2181
、2888
、3888
第二台 :192.168.42.102
开放端口有2181
、2888
、3888
第三台 :192.168.42.103
开放端口有2181
、2888
、3888
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