美文网首页
How to do - ubuntu下安装和部署zookeepe

How to do - ubuntu下安装和部署zookeepe

作者: Yt_cc | 来源:发表于2019-07-10 10:54 被阅读0次

    ZooKeeper的安装部署

    安装环境:

    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-jdk

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

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

    Step2:解压和配置

    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.cfg

    配置参数含义如下:

    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

    视频教程   ⬅️戳这里~

    相关文章

      网友评论

          本文标题:How to do - ubuntu下安装和部署zookeepe

          本文链接:https://www.haomeiwen.com/subject/pbuckctx.html