zookeeper部署(集群模式)

来源:互联网 发布:汽配软件 编辑:程序博客网 时间:2024/05/22 11:58

必要条件:Java环境

  • 安装脚本
ZK_HOME="/usr/local/zookeeper-3.4.9"DATA_DIR="/app/data/zookeeper"LOG_DIR="/app/logs/zookeeper"INST_DIR="/app/install"sudo mkdir -p "$INST_DIR"[ -f "$INST_DIR"/zookeeper-3.4.9.tar.gz ] || wget https://www.apache.org/dist/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz && sudo mv zookeeper-3.4.9.tar.gz "$INST_DIR"function decompress() {        if [ ! -d "${ZK_HOME}" ];then        sudo tar zxvf "$INST_DIR"/zookeeper-3.4.9.tar.gz -C /usr/local/        sudo chmod 755 -R ${ZK_HOME}    fi}function copyConfTemplate() {    sudo cp "$INST_DIR"/zk_conf/* ${ZK_HOME}/conf/}function localize() {    sudo mkdir -p "${LOG_DIR}"    sudo chmod a+w -R "${LOG_DIR}"    sudo mkdir -p ${DATA_DIR}    sudo chmod a+w -R ${DATA_DIR}    touch ${DATA_DIR}/myid    #不同机器获取本机ip地址的脚本可能不同,建议先在命令行试一下结果    host_ip=`ifconfig eth0 | grep -w "inet" | awk '{ print $2}'`    server_id=`grep "${host_ip}" ${ZK_HOME}/conf/zoo.cfg | awk -F'=' '{print $1}' | awk -F'.' '{print $2}'`    echo "${host_ip}----${server_id}"    echo "${server_id}" > ${DATA_DIR}/myid}decompress;copyConfTemplate;localize;
  • 配置文件
    注意以下两个文件的存放目录是/app/install/zk_conf,需要提前建好,部署脚本里用到这个路径。

    zoo.cfg(需要把zk-server1-ip、zk-server2-ip、zk-server3-ip改成实际部署的机器ip,或者配置hosts)

# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial # synchronization phase can takeinitLimit=10# The number of ticks that can pass between # sending a request and getting an acknowledgementsyncLimit=5# the directory where the snapshot is stored.# do not use /tmp for storage, /tmp here is just # example sakes.dataDir=/app/data/zookeeper# the port at which the clients will connectclientPort=2181server.1=zk-server1-ip:3888:4888server.2=zk-server2-ip:3888:4888server.3=zk-server3-ip:3888:4888# the maximum number of client connections.# increase this if you need to handle more clients#maxClientCnxns=60## Be sure to read the maintenance section of the # administrator guide before turning on autopurge.## http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance## The number of snapshots to retain in dataDir#autopurge.snapRetainCount=3# Purge task interval in hours# Set to "0" to disable auto purge feature#autopurge.purgeInterval=1

log4j.properties

# Define some default values that can be overridden by system propertieszookeeper.root.logger=INFO, CONSOLEzookeeper.console.threshold=INFOzookeeper.log.dir=/app/logs/zookeeper/zookeeper.log.file=zookeeper.logzookeeper.log.threshold=DEBUGzookeeper.tracelog.dir=.zookeeper.tracelog.file=zookeeper_trace.log## ZooKeeper Logging Configuration## Format is "<default threshold> (, <appender>)+# DEFAULT: console appender onlylog4j.rootLogger=${zookeeper.root.logger}# Example with rolling log file#log4j.rootLogger=DEBUG, CONSOLE, ROLLINGFILE# Example with rolling log file and tracing#log4j.rootLogger=TRACE, CONSOLE, ROLLINGFILE, TRACEFILE## Log INFO level and above messages to the console#log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppenderlog4j.appender.CONSOLE.Threshold=${zookeeper.console.threshold}log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayoutlog4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n## Add ROLLINGFILE to rootLogger to get log file output#    Log DEBUG level and above messages to a log filelog4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppenderlog4j.appender.ROLLINGFILE.Threshold=${zookeeper.log.threshold}log4j.appender.ROLLINGFILE.File=${zookeeper.log.dir}/${zookeeper.log.file}# Max log file size of 10MBlog4j.appender.ROLLINGFILE.MaxFileSize=10MB# uncomment the next line to limit number of backup files#log4j.appender.ROLLINGFILE.MaxBackupIndex=10log4j.appender.ROLLINGFILE.layout=org.apache.log4j.PatternLayoutlog4j.appender.ROLLINGFILE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n## Add TRACEFILE to rootLogger to get log file output#    Log DEBUG level and above messages to a log filelog4j.appender.TRACEFILE=org.apache.log4j.FileAppenderlog4j.appender.TRACEFILE.Threshold=TRACElog4j.appender.TRACEFILE.File=${zookeeper.tracelog.dir}/${zookeeper.tracelog.file}log4j.appender.TRACEFILE.layout=org.apache.log4j.PatternLayout### Notice we are including log4j's NDC here (%x)log4j.appender.TRACEFILE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L][%x] - %m%n
  • 执行部署
    sh zookeeper.sh

  • 启动

    sh /usr/local/zookeeper-3.4.9/bin/zkServer.sh start

  • 验证

    /usr/local/zookeeper-3.4.9/bin/zkServer.sh status(正常会显示leader还是follower)

这里写图片描述

或者jps(显示QuorumPeerMain表示成功)

这里写图片描述