zoukankan      html  css  js  c++  java
  • Zookeeper 集群环境搭建

    基于Zookeeper的过半选举机制,集群节点为奇数,以3个节点为例

    准备三台服务器,ip分别是:

        192.168.126.128
        192.168.126.129
        192.168.126.130

    1、下载 zookeeper包 apache-zookeeper-3.5.5-bin.tar.gz,拷贝至每台服务器的自建目录 /opt/zookeeper/

    2、解压 apache-zookeeper-3.5.5-bin.tar.gz

    3、设置环境变量

    vi /etc/profile
    ...
    export ZOOKEEPER_HOME=/opt/zookeeper/apache-zookeeper-3.5.5-bin
    export PATH=$PATH:$ZOOKEEPER/bin
    
    #运行source命令让当前设置立即生效
    source /etc/profile
    #可以用echo命令查看当前PATH,看是不是和预期一样
    echo $PATH

    引申思考一下,profile 与 bashrc 的区别

    4、修改 zookeeper配置

    # 进入zookeeper 目录 
    cd /opt/zookeeper/apache-zookeeper-3.5.5-bin
    
    # 进入conf文件夹,有一个zoo_sample.cfg
    cd conf
    
    # 复制一份名为zoo.cfg,因为zookeeper服务端启动时候会根据这个名字来加载
    cp zoo_sample.cfg zoo.cfg
    
    # 在zoo.cfg里面配置集群的信息
    vi zoo.cfg
    
    # 在zoo.cfg末端加入下面的配置
    dataDir=/opt/zookeeper/apache-zookeeper-3.5.5-bin/data
    dataLogDir=/opt/zookeeper/apache-zookeeper-3.5.5-bin/logs
    server.1=192.168.126.128:2888:3888
    server.2=192.168.126.129:2888:3888
    server.3=192.168.126.130:2888:3888
    
    # 在zoo.cfg里dataDir指定的文件夹下,创建myid文件,文件内容为server后面的一个数字
    192.168.126.128的myid文件内容为1
    192.168.126.129的myid文件内容为2
    192.168.126.130的myid文件内容为3

    5、启动 Zookeeper

    # 进入 /opt/zookeeper/apache-zookeeper-3.5.5-bin/bin 目录下,启动服务
    # zkServer.sh 需要传一个参数,有这些可以选 {start|start-foreground|stop|restart|status|print-cmd}
    # 我们先用start-foreground,可以在命令行看到启动的日志信息

    sh zkServer.sh start

    6、查看服务状态

    sh zkServer.sh status

    遇到问题:

    #网络上的解释是说需要关闭防火墙
    #可以通过`systemctl status firewalld.service`查看当前防火墙的状态
    #关闭防火漆的命名
    systemctl stop firewalld.service
    
    
    # 可能是未开放相关端口,查询 2888 和3888 端口是否开放
    firewall-cmd --query-port=2888/tcp
    firewall-cmd --query-port=3888/tcp
    
    #如果为no,则可以通过将 2888和3888 端口加到开放端口
    firewall-cmd --add-port=2888/tcp --permanent
    firewall-cmd --add-port=3888/tcp --permanent
    
    #并重载入添加的端口:
    firewall-cmd --reload
    
    #再次查询端口开放情况,确定2888和3888开放
    firewall-cmd --query-port=2888/tcp
    firewall-cmd --query-port=3888/tcp

    再次查看 zookeeper 的状态

    [root@localhost bin]# zkServer.sh status
    /usr/bin/java
    ZooKeeper JMX enabled by default
    Using config: /opt/zookeeper/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost.
    Mode: follower
    
    或者是
    
    [root@localhost init.d]# zkServer.sh status
    /usr/bin/java
    ZooKeeper JMX enabled by default
    Using config: /opt/zookeeper/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost.
    Mode: leader

    看到上面的信息表示zk集群配置成功了。

    7、常用命令

    # 启动 zk 服务
    sh zkServer.sh start
    
    # 停止 zk 服务
    sh zkServer.sh stop
    
    # 查看 zk 服务状态
    sh zkServer.sh status
    
    # 重启 zk 服务
    sh zkServer.sh restart
    
    # 客户端连接 zk 服务
    sh zkCli.sh -timeout 0 -r -server ip:port

    http://dubbo.apache.org/zh-cn/docs/admin/install/zookeeper.html

  • 相关阅读:
    设计模式:迭代器模式(Iterator Pattern) 明
    设计模式:目录导航 明
    设计模式:状态模式(State Pattern) 明
    设计模式:命令模式(Command Pattern) 明
    二维DP—— POJ 3186
    COM组件里自动化接口与普通接口的转换
    贪心好题——poj3044
    三分查找——POJ3301
    静态链表+DFS——poj 3272
    妙用队列优化——校赛题
  • 原文地址:https://www.cnblogs.com/fightingtong/p/13569520.html
Copyright © 2011-2022 走看看