Zookeeper 集群搭建

本贴最后更新于 2726 天前,其中的信息可能已经天翻地覆

Zookeeper 是一个分布式协调服务, 本文介绍的 Zookeeper 是以 3.4.11 这个稳定版本为基础,最新的版本可以通过 官网 来获取,Zookeeper 的安装非常简单,下面将以集群模式介绍 Zookeeper 的安装和配置。

准备

三台 Linux 服务器:

  • 172.16.129.18 redis18
  • 172.16.129.21 redis21
  • 172.16.129.22 redis22

安装 JDK

。。。。

下载 Zookeeper 解压

。。。。

修改配置文件

cp zoo_sample.cfg zoo.cfg

需要修改的配置项:

tickTime=2000 initLimit=10 syncLimit=5 dataDir=/tkdata/zookeeper/data clientPort=2181 server.1=172.16.129.18:2888:3888 server.2=172.16.129.21:2888:3888 server.3=172.16.129.22:2888:3888 #server.1 这个1是服务器的标识也可以是其他的数字, 表示这个是第几号服务器,用来标识服务器,这个标识要写到快照目录下面myid文件里 #第一个端口是master和slave之间的通信端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888

创建 myid 文件

#server1 echo "1" > /tkdata/zookeeper/data/myid #server2 echo "2" > /tkdata/zookeeper/data/myid #server3 echo "3" > /tkdata/zookeeper/data/myid

指定日志路径

  1. 修改 conf/log4j.properties 文件中的 zookeeper.root.logger=INFO, ROLLINGFILE

  2. 修改 bin/zkEnv.sh 文件中 ZOO_LOG_DIR="/tkdata/zookeeper/logs"ZOO_LOG4J_PROP="INFO,ROLLINGFILE"

启动服务

./zkServer.sh start #启动服务(3台都需要操作) ./zkServer.sh status #检查服务器状态 jps

jps(Java Virtual Machine Process Status Tool)是 JDK 1.5 提供的一个显示当前所有 java 进程 pid 的命令

设置开机启动

cd /etc/rc.d/init.d/ touch zookeeper #创建一个空文件 chmod +x zookeeper #添加可执行权限 chkconfig --add zookeeper #把zookeeper添加到开机启动 chkconfig --list #列出所有的系统服务 service zookeeper start/stop #启动或停止zookeeper服务

zookeeper 文件内容:

#!/bin/bash # chkconfig: 2345 - 85 15 # description: zookeeper # processname: zookeeper ZOOKEEPER_PATH='/usr/local/zookeeper' case $1 in start) sudo ${ZOOKEEPER_PATH}/bin/zkServer.sh start ;; stop) sudo ${ZOOKEEPER_PATH}/bin/zkServer.sh stop ;; status) sudo ${ZOOKEEPER_PATH}/bin/zkServer.sh status ;; restart) sudo ${ZOOKEEPER_PATH}/bin/zkServer.sh restart ;; *) echo $"Usage: $0 {start|stop|status|restart}" ;; esac

如果无法启动需要在 zkServer.sh 中添加

export JAVA_HOME=/usr/java/jdk1.7.0_80 export PATH=$JAVA_HOME/bin:$PATH

查看集群状态

./zkServer.sh status

输出

ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Mode: follower
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    952 引用 • 944 回帖 • 1 关注
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...