安装zookeeper

1.前提

  • 检查IP地址ifconfig
    192.168.88.161
    192.168.88.162
    192.168.88.163

  • 检查主机名(cat /etc/hostname)
    node1.itcast.cn
    node2.itcast.cn
    node3.itcast.cn

  • 检查主机映射(cat /etc/hosts)

  • 检查防火墙是否关闭(systemctl status firewalld)

  • 检查时间是否同步
    date +"%Y-%m-%D %H:%M:%S"

  • 检查是否能ssh免密登录
    ssh 其它主机名

  • 检查jdk是否安装
    java -version

2.zk具体安装部署(选择node1安装,scp分发给其它节点)

  • 1)下载安装包
    zookeeper-3.4.6.tar.gz

  • 2)上传解压重命名
    cd /export/software/
    tar zxvf zookeeper-3.4.6.tar.gz -C /export/server/ #解压到指定目录
    cd /export/server
    mv zookeeper-3.4.6/ zookeeper #改个名

  • 3)修改配置文件
    cd zookeeper/conf
    mv zoo_sample.cfg zoo.cfg #改个名儿
    vim zoo.cfg
    修改内容:
    dataDir=/export/data/zkdata
    最后添加:

    (2888心跳端口、3888选举端口)

    server.1=node1:2888:3888
    server.2=node2:2888:3888
    server.3=node3:2888:3888

  • 4)myid
    在每台机器的dataDir指定的目录下创建一个文件 名字为myid
    myid里面的数字就是该机器上server编号.server.N N的数字就是编号
    mkdir -p /export/data/zkdata
    echo 1 > /export/data/zkdata/myid

  • 5)把安装包同步到其它节点上
    cd /export/server
    scp -r zookeeper/ node2:$PWD
    scp -r zookeeper/ node3:$PWD
    检查node2,node3的/export/server路径下是否新添加了zookeeper文件夹

  • 6)修改其他机器的配置文件
    修改myid文件
    mkdir -p /export/data/zkdata
    echo 2 > /export/data/zkdata/myid

    mkdir -p /export/data/zkdata
    echo 3 > /export/data/zkdata/myid

  • 7)启动zk集群
    每台机器上单独启动服务
    在哪个目录执行启动命令,默认启动日志就生成在当前路径下叫做zookeeper.out
    /export/server/zookeeper/bin/zkServer.sh start
    三台机器启动完毕之后,可以使用status查看角色是否正常


  • 8)选举过半机制
    首先集群数量最好是奇数3.5.7..
    只要投票超过一半的人lead就生效,之后再添加机器也并不会变
    集群的机器过半以上存在就能正常运行,少于一半就会瘫痪,集群不能用
    比如三台机器:先运行第一台,集群不能用
    运行第二台,这时候会对比myid里的数字,数字越大权重越大,大的成为leader,小的为follower
    这时候运行第三台,并不会改变结果,第三台也是follower,除非leader挂了

3.一键启动zk脚本

mkdir -p /onekey
touch zk1_start.sh
vim zk1_start.sh

#! /bin/bash
hosts=(node1 node2 node3)
for host in ${hosts[*]}
do
      ssh $host "source /etc/profile; /export/server/zookeeper/bin/zkServer.sh start"
done

同理可以一键关闭

posted @ 2021-10-26 17:38  锦年入梦  阅读(108)  评论(0)    收藏  举报