zoukankan      html  css  js  c++  java
  • Linux Zookeeper集群部署

    环境准备

    # 关闭防火墙(3台机器)
    [root@master bin]#  systemctl stop firewalld
    [root@master bin]#  systemctl enable firewalld

    image

    # 3个节点配置hosts文件
    vim /etc/hosts
    
    192.168.10.110        master
    192.168.10.141        node1
    192.168.10.142        node2

    image

    # 基于RSA算法 生成公钥
    [root@master zookeeper]# ssh-keygen
    # node1的免密
    [root@master zookeeper]# ssh-copy-id root@node1
    # node2的免密
    [root@master zookeeper]# ssh-copy-id root@node2

    image


    安装JDK

    以下安装(2选1)

    image

    # 3个节点部署安装JDK (Yum安装,推荐)

    yum install –y java-1.8.0-openjdk-devel.x86_64

    # 检查java版本

    java –version

    # 检查java安装

    yum list java* -y

    # yum默认的java安装路径

    [root@master ~]# ls /usr/bin/java -l
    lrwxrwxrwx. 1 root root 22 Jun 20 15:50 /usr/bin/java -> /etc/alternatives/java

    # 配置java的环境变量

    #set java environment

    JAVA_HOME=/etc/alternatives/java_sdk_1.8.0

    CLASSPATH=$JAVA_HOME/lib/

    PATH=$PATH:$JAVA_HOME/bin

    export PATH JAVA_HOME CLASSPATH

    # java –version


    image

    Zookeeper部署

    # 访问官网下载Zookeeper安装包,并解压

    mkdir -p /opt/zookeeper cd /opt/zookeeper

    # 创建软连接

    ln -s zookeeper apache-zookeeper-3.7.0-bin # 创建数据目录 mkdir -p /opt/zk/zk_data # 创建日志目录 mkdir –p /opt/zk/zk_log

    # 复制包到node1和node2


    下载链接:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.7.0/

    image


    cd /opt/zk/apache-zookeeper-3.7.0-bincp zoo_sample.cfg zoo.cfg vim zoo.cfg dataDir=/opt/zk/zk_data dataLogDir=/opt/zk/zk_log server.1=master:2888:3888 server.2=node1:2888:3888 server.3=node2:2888:3888 # 同步配置文件到其他节点 scp zoo.cfg root@node1:/opt/zookeeper/zookeeper/conf/ scp zoo.cfg root@node2:/opt/zookeeper/zookeeper/conf/


    说明:

    tickTime:基本事件单元,这个时间是作为Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,每隔tickTime时间就会发送一个心跳;最小的session过期时间为2倍tickTime

    dataDir:存储内存中数据库快照的位置,除非另有说明,否则指向数据库更新的事务日志。注意:应该谨慎的选择日志存放的位置,使用专用的日志存储设备能够大大提高系统的性能,如果将日志存储在比较繁忙的存储设备上,那么将会很大程度上影像系统性能。

    client:监听客户端连接的端口。
    initLimit:允许follower连接并同步到Leader的初始化连接时间,以tickTime为单位。当初始化连接时间超过该值,则表示连接失败。
    syncLimit:表示Leader与Follower之间发送消息时,请求和应答时间长度。如果follower在设置时间内不能与leader通信,那么此follower将会被丢弃。

    server.A=B:C:D
        A:其中 A 是一个数字,表示这个是服务器的编号,对应myid文件
        B:是这个服务器的 ip 地址;
        C:Zookeeper服务器之间的通信端口;
        D:Leader选举的端口。

    # 参考官方文档:https://zookeeper.apache.org/doc/r3.5.8/zookeeperStarted.html

    image

    # master节点配置,myid参考配置文件zoo.cfg中配置的信息

    [root@master conf]# cd /opt/zk/zk_data/ [root@master data]# ll total 0 [root@master data]# echo '1' >myid

    # node1和node2分别写入2,3

    image

    #(3台机器操作) 配置zk变量信息 vim /etc/profile #set zookeeper environment export ZK_HOME=/opt/zk/apache-zookeeper-3.7.0-bin

    export PATH=$PATH:$ZK_HOME/bin # 配置生效 source /etc/profine

    image

    # 启动zk
    cd /opt/zk/apache-zookeeper-3.7.0-bin/bin
    ./zkServer.sh start

    image

    # 查看zk的状态
    zkServer.sh status

    image

    部署错误

    错误1: could not find or load mian class org.apache.zookeeper.server.quorum

    解决1:重新下载bin.tar.gz包

    image


    错误2: [myid:localhost:2181] - WARN  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1290] - Session 0x0 for sever localhost/127.0.0.1:2181, Closing socket connection. Attempting reconnect except it is a SessionExpiredException.

    解决2:防火墙没有关 systemctl stop firewalld

    作者:小a玖拾柒

    -------------------------------------------

    个性签名: 所有的事情到最後都是好的,如果不好,那說明事情還沒有到最後~

    本文版权归作者【小a玖拾柒】和【博客园】共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利!

  • 相关阅读:
    Effective Java 第三版——26. 不要使用原始类型
    Effective Java 第三版——25. 将源文件限制为单个顶级类
    Effective Java 第三版——24. 优先考虑静态成员类
    Effective Java 第三版——23. 优先使用类层次而不是标签类
    Effective Java 第三版——22. 接口仅用来定义类型
    Effective Java 第三版——21. 为后代设计接口
    Effective Java 第三版——20. 接口优于抽象类
    Effective Java 第三版——19. 如果使用继承则设计,并文档说明,否则不该使用
    Effective Java 第三版——18. 组合优于继承
    Effective Java 第三版——17. 最小化可变性
  • 原文地址:https://www.cnblogs.com/ftl1012/p/14907029.html
Copyright © 2011-2022 走看看