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

  • 相关阅读:
    转载:C#中的属性、和字段的区别
    在idea中创建一个maven web工程及解决工程创建过慢问题
    注解&动态代理
    Listener&Filter
    Ajax&jQuery
    JSP&EL&JSTL
    Cookie&Session
    HttpServletRequest&HttpServletResponse
    Http协议&Servlet
    XML
  • 原文地址:https://www.cnblogs.com/ftl1012/p/14907029.html
Copyright © 2011-2022 走看看