How to do - ubuntu下安装和部署zookeeper,一篇就够

 

ZooKeeper的安装部署html


 

安装环境:java

Linux ubuntu 4.4.0-87-generic #110-Ubuntu SMP Tue Jul 18 12:55:35 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux数据库

预置条件:安装jdk,ubuntu上:sudo apt-get update / sudo apt-get install openjdk-8-jdkapache

Step1 :下载,目前稳定版本是3.5.5,链接地址是:http://apache.claz.org/zookeeper/stable/apache-zookeeper-3.5.5-bin.tar.gzubuntu

wget http://apache.claz.org/zookeeper/stable/apache-zookeeper-3.5.5-bin.tar.gzvim

Step2:解压和配置bash

tar -xzvf apache-zookeeper-3.5.5-bin.tar.gz服务器

mv apache-zookeeper-3.5.5-bin /usr/local/zookeeper并发

cp conf/zoo_sample.cfg conf/zoo.cfgssh

配置参数含义以下:

tickTime=2000

dataDir=/var/zookeeper/data

dataLogDir=/var/zookeeper/log

clientPort=2181

initLimit=5

syncLimit=2

maxClientCnxns=60

  • tickTime : ZooKeeper 中使用的基本时间单元, 以毫秒为单位, 默认值是 2000。它用来调节心跳和超时。例如, 默认的会话超时时间是两倍的 tickTime。
  • dataDir : ZooKeeper 用来存储内存数据库快照的目录。
  • dataLogDir: 数据库更新的事物日志保存的目录,若是没有设置该目录,不然数据库更新的事务日志也将会存储在dataDir目录下。建议配置 dataLogDir 参数来指定 ZooKeeper 事务日志的存储目录。
  • clientPort:ZooKeeper服务监听的端口。
  • initLimit: 默认值是 10, 即 tickTime 属性值的 10 倍。它用于配置容许 followers 链接并同步到 leader 的最大时间。若是 ZooKeeper 管理的数据量很大的话能够增长这个值。
  • syncLimit: 默认值是 5, 即 tickTime 属性值的 5 倍。它用于配置leader 和 followers 间进行心跳检测的最大延迟时间。若是在设置的时间内 followers 没法与 leader 进行通讯, 那么 followers 将会被丢弃。
  • maxClientCnxns: 在 socket 级别限制单个客户端与单台服务器以前的并发链接数量, 能够经过 IP 地址来区分不一样的客户端。它用来防止某种类型的 DoS 攻击, 包括文件描述符耗尽。默认值是 60。将其设置为 0 将彻底移除并发链接数的限制。

 

更多配置信息请参考: https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_configuration

Step3:启动ZooKeeper服务:

启动方式以下:

cd bin

zkServer.sh start

Step4:测试ZooKeeper服务

测试方式:

./zkCli.sh

发现2181端口绑定在ipv6的地址上,致使咱们使用ipv4链接不了

root@ubuntu:/usr/local/zookeeper/bin# netstat -antp

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      955/sshd

tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      1194/0

tcp        0      0 192.168.1.4:22          192.168.1.3:34542       ESTABLISHED 1154/sshd: lizhiyon

tcp        0      0 192.168.1.4:22          192.168.1.3:34541       ESTABLISHED 1152/sshd: lizhiyon

tcp6       0      0 :::42863                :::*                    LISTEN      1274/java

tcp6       0      0 :::8080                 :::*                    LISTEN      1274/java

tcp6       0      0 :::22                   :::*                    LISTEN      955/sshd

tcp6       0      0 ::1:6010                :::*                    LISTEN      1194/0

tcp6       0      0 :::2181                 :::*                    LISTEN      1274/java

解决办法:

   vim zkServer.sh;

   在start)部分找到“ nohup $JAVA "-Dzookeeper.log.dir=${ZOO_LOG_DIR}"”,给其添加一个选项"-Djava.net.preferIPv4Stack=true",这样启动的时候就会自动绑定IPV4端的IP;

Step 5 : 开机自启动

在/etc/init.d目录下建立zookeeper文件,在文件里输入如下内容,固然要注意JAVA_HOME的路径要跟你本身的环境一致:

#!/bin/bash

#Configurations injected by install_server below....

EXEC=/usr/local/zookeeper/bin/zkServer.sh

JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

PATH=${JAVA_HOME}/bin:$PATH

###############

# SysV Init Information

# chkconfig: - 58 74

# description: zookeeper is the zookeeper daemon.

### BEGIN INIT INFO

# Provides: zookeeper

# Required-Start: $network $local_fs $remote_fs

# Required-Stop: $network $local_fs $remote_fs

# Default-Start: 2 3 4 5

# Default-Stop: 0 1 6

# Should-Start: $syslog $named

# Should-Stop: $syslog $named

# Short-Description: start and stop zookeeper

# Description: zookeeper daemon

### END INIT INFO

case $1 in

        start) su root /usr/local/zookeeper/bin/zkServer.sh start;;

        stop) su root /usr/local/zookeeper/bin/zkServer.sh stop;;

        status) su root /usr/local/zookeeper/bin/zkServer.sh status;;

        restart) su /usr/local/zookeeper/bin/zkServer.sh restart;;

        *) echo "require start|stop|status|restart" ;;

esac

而后添加zookeeper服务:

在Ubuntu中,/etc/init.d已被/usr/lib/systemd所取代。脚本仍然能够经过“服务”启动和停用。但主要命令如今是'systemctl'。chkconfig命令被留下,如今你用systemctl来作这件事。

因此,而不是:

chkconfig enable zookeeper

而应该查找服务名称,而后启用它

systemctl status zookeeper

systemctl enable zookeeper.service

点赞收藏转发~私信一下通通带走

相关文章
相关标签/搜索