Zookeeper 集群搭建

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

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 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    915 引用 • 931 回帖
  • ZooKeeper

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

    59 引用 • 29 回帖 • 19 关注

相关帖子

欢迎来到这里!

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

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