• Zookeeper 集群安装部署


    集群规划

    在 3 台服务器上都安装 ZK,组成集群

    $ tar xzvf apache-zookeeper-3.5.7-bin.tar.gz -C /home/hadoop/local/

    $ cd /home/hadoop/local

    $ ln -s apache-zookeeper-3.5.7-bin zookeeper

    添加环境变量

    修改 my_env.sh

    $ sudo vim /etc/profile.d/my_env.sh

    1. HADOOP_HOME=/home/local/hadoop
    2. ZOOKEEPER_HOME=/home/hadoop/local/zookeeper
    3. PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin
    4. export HADOOP_HOME ZOOKEEPER_HOME PATH

    $ source /etc/profile

    修改配置

    $ cd /home/hadoop/local/zookeeper/conf

    $ mv zoo_sample.cfg zoo.cfg

    创建保存日志路径

    $ mkdir /home/hadoop/local/zookeeper/zkData

    修改配置文件:

    $ vim zoo.cfg

    修改保存数据的目录:

    dataDir=/home/hadoop/local/zookeeper/zkData

    最后添加:

    1. server.1=ns1:2888:3888
    2. server.2=ns2:2888:3888
    3. server.3=ns3:2888:3888
    • 这个 server 后面的数字要和后面的 myid 文件中记录的数字一致,表示这个是第几号服务器;
    • ns1:这个服务器的地址
    • 2888:是这个服务器 Follower 与集群中的 Leader 服务器交换信息的端口;
    • 3888:是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口;

    新建保存 id 的文件

    Zookeeper 启动时读取此文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是哪个 server;

    $ cd /home/hadoop/local/zookeeper/zkData

    $ touch myid

    $ vim myid

    1

    此 id 值每个服务器不同,因此 ns1 为 1,ns2 为 2,ns3 为 3

    在 ns2、ns3 上执行上面同样的命令,只不过 myid 文件中的值为 2 和 3

    启动命令

    每台 ZK 服务器分别启动

    $ zkServer.sh start

    查看 ZK 服务器状态:

    $ zkServer.sh status

    输出信息中的 Mode: leader / flower,可以看出是否是主节点;

    关闭 ZK 服务器:

    $ zkServer.sh stop

    客户端启动命令

    $ zkCli.sh

    客户端命令行操作命令

    命令基本语法

    功能描述

    help

    显示所有操作命令

    ls path

    使用 ls 命令来查看当前znode的子节点

    -w  监听子节点变化

    -s   附加次级信息

    create

    普通创建

    -s  含有序列

    -e  临时(重启或者超时消失)

    get path

    获得节点的值

    -w  监听节点内容变化

    -s   附加次级信息

    set

    设置节点的具体值

    stat

    查看节点状态

    delete

    删除节点

    deleteall

    递归删除节点

    ZK 集群启动停止脚本

    $ vim /home/hadoop/bin/zk.sh

    1. #!/bin/bash
    2. if [ $# -lt 1 ]
    3. then
    4. echo "USAGE: zk.sh {start|stop|status}"
    5. exit;
    6. fi
    7. case $1 in
    8. "start"){
    9. for i in ns1 ns2 ns3
    10. do
    11. echo ---------- zookeeper $i 启动 ------------
    12. ssh $i "/home/hadoop/local/zookeeper/bin/zkServer.sh start"
    13. done
    14. };;
    15. "stop"){
    16. for i in ns1 ns2 ns3
    17. do
    18. echo ---------- zookeeper $i 停止 ------------
    19. ssh $i "/home/hadoop/local/zookeeper/bin/zkServer.sh stop"
    20. done
    21. };;
    22. "status"){
    23. for i in ns1 ns2 ns3
    24. do
    25. echo ---------- zookeeper $i 状态 ------------
    26. ssh $i "/home/hadoop/local/zookeeper/bin/zkServer.sh status"
    27. done
    28. };;
    29. esac

    $ chmod u+x /home/hadoop/bin/zk.sh

    以后就可以在 ns1 上操作整个 ZK 集群:

    $ zk.sh start|status|stop

  • 相关阅读:
    DSPE-PEG-VIP,磷脂-聚乙二醇-血管活性肠肽VIP,VIP修饰脂质体供应
    Redis 哨兵集群方案
    哈希的应用 —— 布隆过滤器
    Flink学习:Flink支持的数据类型
    springboot和vue的药品管理系统
    开发实战经验分享:互联网医院系统源码与在线问诊APP搭建
    农村电力供应,这件事必须重视!
    Mysql数据类型
    nodejs将rtsp视频流打上水印后通过websocket发送给前端
    MDPI论文投稿全流程实例讲解
  • 原文地址:https://blog.csdn.net/zhy0414/article/details/126621480