黑洞

这里藏着一些独特的想法

0%

Zookeeper集群部署

下载解压

https://zookeeper.apache.org/releases.html

从上面网址找到相应版本的bin压缩包,体积小的是源码!

1
2
3
4
5
#下载
wget https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz

#解压
tar zxvf apache-zookeeper-3.8.0-bin.tar.gz

配置Zookeeper

先给文件夹改个名字

mv zookeeper-3.8.0/ zookeeper

修改配置文件

  • zoo.cfg

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #zk默认加载的配置文件是zoo.cfg 因此需要针对模板进行修改,保证名字正确。
    cd zookeeper/conf
    mv zoo_sample.cfg zoo.cfg

    vi zoo.cfg

    #修改
    dataDir=/export/data/zkdata
    #文件最后添加 2888心跳端口 3888选举端口
    server.1=node1:2888:3888
    server.2=node2:2888:3888
    server.3=node3:2888:3888
  • myid

    1
    2
    3
    4
    5
    6
    #在每台机器的dataDir指定的目录下创建一个文件 名字叫做myid

    #myid里面的数字就是该台机器上server编号。server.N N的数字就是编号

    mkdir -p /export/data/zkdata
    echo 1 > /export/data/zkdata/myid
  • 把安装包同步到其他节点上

    1
    2
    3
    cd /export/server
    scp -r zookeeper/ node2:$PWD
    scp -r zookeeper/ node3:$PWD
  • 创建其他机器上myid和datadir目录

    1
    2
    3
    4
    5
    6
    7
    #node2
    mkdir -p /export/data/zkdata
    echo 2 > /export/data/zkdata/myid

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

至此,Zookeeper配置完毕。

启动Zookeeper

  • 每台机器上单独启动服务

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #在哪个目录执行启动命令 默认启动日志就生成当前路径下 叫做zookeeper.out

    /export/server/zookeeper/bin/zkServer.sh start

    #停止和查看状态
    stop|status

    #3台机器启动完毕之后 可以使用status查看角色是否正常。
    #还可以使用jps命令查看zk进程是否启动。
    [root@node3 ~]# jps
    2034 Jps
    1980 QuorumPeerMain #看我,我就是zk的java进程

在node1机器上执行shell脚本,程序通过ssh免密登录到各个机器上帮助执行命令。

  • 一键关闭脚本

    1
    2
    3
    4
    5
    6
    7
    8
    vim stopZk.sh

    #!/bin/bash
    hosts=(node1 node2 node3)
    for host in ${hosts[*]}
    do
    ssh $host "/export/server/zookeeper/bin/zkServer.sh stop"
    done
  • 一键启动脚本

    1
    2
    3
    4
    5
    6
    7
    8
    vim startZk.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
  • 注意:关闭java进程时候 根据进程号 直接杀死即可就可以关闭。启动java进程的时候 需要JDK。

  • shell程序ssh登录的时候不会自动加载/etc/profile 需要shell程序中自己加载。

添加执行权限

1
2
chmod u+x stopZk.sh
chmod u+x startZk.sh
如果觉得文章写得不错或对您有帮助,请我喝杯柠檬茶吧!