当前位置: 首页 > news >正文

zookeeper集群安装

zookeeper集群安装

文档

  1. linux安装java -centos安装java -linux配置java环境变量
  2. zookeeper单机安装
  3. zookeeper集群安装
  4. zookeeper客户端命令行操作、节点类型及监听器
  5. zookeeper集群写数据原理
  6. java操作zookeeper

说明

  1. 版本选择:apache-zookeeper-3.5.7-bin.tar.gz
  2. 下载地址:https://archive.apache.org/dist/zookeeper/zookeeper-3.5.7/apache-zookeeper-3.5.7-bin.tar.gz
  3. 先安装单机版,参考zookeeper单机安装,然后调整配置文件,即可转为集群安装

安装前准备

  1. 在linux上安装,centos7上安装
  2. 安装java环境,参考:linux安装java -centos安装java -linux配置java环境变量

集群安装

  1. 在三台服务器上安装3个zookeeper服务,组成集群,先在一台服务器上安装好,然后复制到另外两台服务器上,修改配置即可

  2. 安装单机版,参考zookeeper单机安装

  3. 配置服务器编号

    在单机版安装中,已创建/opt/module/zookeeper-3.5.7/zkData目录,用来存放zookeeper数据,在该目录下,创建myid文件,文件内容为服务器编号,设置一个数字即可

    cd cd /opt/module/zookeeper-3.5.7/zkData
    vi myid
    

    在文件中添加内容,即服务器编号,保证集群内唯一即可,可以以服务器ip的最后一位做为服务器编号

    # 数字,添加server对应的编号,唯一标识,集群内唯一,例如:当前服务器ip末尾是2,这里就设置为2
    2
    
  4. 修改配置文件zoo.cfg

    在单机安装中,已修改配置文件,指定了数据的存储路径,如下

    # dataDir=/tmp/zookeeper
    dataDir=/opt/module/zookeeper-3.5.7/zkData
    

    在此基础上,增加集群配置,在配置文件zoo.cfg后面增加内容

    # cluster集群配置
    server.2=192.168.145.132:2888:3888
    server.3=192.168.145.133:2888:3888
    server.4=192.168.145.134:2888:3888
    

    集群配置说明

    配置参数说明
    server.A=B:C:D
    server.服务器编号=服务器地址:集群中Follower与Leader服务器交换信息的端口:集群中Leader挂了,重新进行选举,执行选举时服务器相互通信的端口
    A:服务器编号,就是myid文件中的值
    B:服务器地址
    C:交换信息端口
    D:选举通信端口
    

    完整的配置文件

    # The number of milliseconds of each tick
    # 通信心跳时间,zookeeper服务器与客户端及服务端与服务端心跳时间,单位毫秒 
    tickTime=2000
    # The number of ticks that the initial 
    # synchronization phase can take
    # LF(Leader与Follower)初始化时的通信时间,10表示10个心跳时间(tickTime),20s未建立连接,通信失败
    initLimit=10
    # The number of ticks that can pass between 
    # sending a request and getting an acknowledgement
    # LF同步通信时限,5个心跳,10s
    syncLimit=5
    # the directory where the snapshot is stored.
    # 快照数据
    # do not use /tmp for storage, /tmp here is just 
    # 不要存放在 /tmp 下
    # example sakes.
    # 自定义路径存放快照数据,改动处1
    # dataDir=/tmp/zookeeper
    dataDir=/opt/module/zookeeper-3.5.7/zkData
    # the port at which the clients will connect
    # 客户端连接端口,通常不做修改
    clientPort=2181
    # the maximum number of client connections.
    # increase this if you need to handle more clients
    #maxClientCnxns=60
    #
    # Be sure to read the maintenance section of the 
    # administrator guide before turning on autopurge.
    #
    # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
    #
    # The number of snapshots to retain in dataDir
    #autopurge.snapRetainCount=3
    # Purge task interval in hours
    # Set to "0" to disable auto purge feature
    #autopurge.purgeInterval=1# 添加以下内容,改动处2
    # cluster集群配置
    server.2=192.168.145.132:2888:3888
    server.3=192.168.145.133:2888:3888
    server.4=192.168.145.134:2888:3888# 配置参数说明
    # server.A=B:C:D
    # server.服务器编号=服务器地址:集群中Follower与Leader服务器交换信息的端口:集群中Leader挂了,重新进行选举,执行选举时服务器相互通信的端口
    # A:服务器编号,就是myid文件中的值
    # B:服务器地址
    # C:交换信息端口
    # D:选举通信端口# 整体就2处改动
    
  5. 以上在一台服务器上的zookeeper集群配置就完成了,将zookeeper整体文件目录复制到另外两台服务器,注意复制到新服务器后,调整zookeeper的服务器编号,即myid文件中的值

  6. 配置文件中的集群配置应与实际情况对应,即集群配置中的服务器编号、服务器地址应调整为实际情况中的服务器编号、服务器地址

关闭防火墙

​ 如果存在防火墙,应保证服务之间正常通信,可以先关闭防火墙

  1. 查看防火墙状态

    systemctl status firewalld
    
  2. 关闭防火墙

    systemctl stop firewalld
    

启动zookeeper服务端

  1. 在3台服务器中,分别启动zookeeper

    cd /opt/module/zookeeper-3.5.7/bin
    ./zkServer.sh start
    
  2. 注意事项

    集群启动成功,应满足半数以上节点启动,所以启动第一个zookeeper后,观察状态,是失败的启动第一个zookeeper后,查看状态,是失败的,因为此时不满足集群最小服务器数量
    启动第二个zookeeper后,查看状态,是成功的,第一个zookeeper也成功了,而且选出了Leader
    启动第三个zookeeper后,查看状态,是成功的,当前节点为Follower
    
  3. 查看zookeeper进程,jps是java命令

    jps -l
    
  4. 查看zookeeper状态

    ./zkServer.sh status
    
  5. 停止zookeeper

    ./zkServer.sh stop
    

启动zookeeper客户端

  1. 启动客户端,默认服务器为localhost

    ./zkCli.sh
    

    输出信息:[zk: localhost:2181(CONNECTED) 0]

  2. 启动客户端,指定服务器

    ./zkCli.sh -server 192.168.145.132:2181
    

    输出信息:[zk: 192.168.145.132:2181(CONNECTED) 0]

  3. 退出

    quit
    

zookeeper集群启动停止脚本

  1. 使用集群启动脚本,可一键启动集群中的所有服务

  2. 注意事项

    • 脚本中连接其它服务器未使用密码,所有应提前设置ssh免密登录
    • ssh远程登录可能会出现找不到JAVA_HOME的问题,可以将java的配置信息配置到/etc/bashrc
  3. 具体脚本内容

    脚本名称:zk.sh

    #!/bin/bashcase $1 in
    "start"){for i in root@192.168.145.132 root@192.168.145.133 root@192.168.145.134do# 提前设置免密登录echo ------ zookeeper $i 启动 ------ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh start"done
    }
    ;;
    "stop"){for i in root@192.168.145.132 root@192.168.145.133 root@192.168.145.134do# 提前设置免密登录echo ------ zookeeper $i 停止 ------ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh stop"done
    }
    ;;
    "status"){for i in root@192.168.145.132 root@192.168.145.133 root@192.168.145.134do# 提前设置免密登录echo ------ zookeeper $i 状态 ------ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh status"done
    }
    ;;
    esac
    
  4. 启动zookeeper集群各个节点

    ./zk.sh start
    
  5. 查看zookeeper集群各个节点状态

    ./zk.sh status
    
  6. 关闭zookeeper集群各个节点

    ./zk.sh stop
    

参考资料

  • 尚硅谷

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 标配M4芯片!苹果三款Mac新品蓄势待发
  • lucene搜索关键词错误
  • 企业级web应用服务器tomcat
  • 学习前端面试知识(15)
  • 强制输出wParam 和 lParam,会是什么内容?
  • 数据仓库系列 3:数据仓库的主要组成部分有哪些?
  • jmeter中CSV 数据文件设置用例
  • DescuentosController : ControllerBase
  • MySQL 系统学习系列 - SQL 语句 DML 语句的使用《MySQL系列篇-02》
  • 数学建模学习(125):使用Python实现Borda计数法进行多标准决策分析
  • 【嵌入式开发之网络编程】TCP端口和UDP端口
  • 《计算机网络-期末模拟卷》
  • Android如何高效的加载大型位图
  • ELK基础搭建
  • 22.计算球体积
  • 30天自制操作系统-2
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • CentOS 7 修改主机名
  • Codepen 每日精选(2018-3-25)
  • CSS盒模型深入
  • eclipse的离线汉化
  • Flannel解读
  • Javascript弹出层-初探
  • Mithril.js 入门介绍
  • PAT A1092
  • vue的全局变量和全局拦截请求器
  • 半理解系列--Promise的进化史
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 计算机常识 - 收藏集 - 掘金
  • 如何在 Tornado 中实现 Middleware
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 一个项目push到多个远程Git仓库
  • 应用生命周期终极 DevOps 工具包
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • # Panda3d 碰撞检测系统介绍
  • #162 (Div. 2)
  • #git 撤消对文件的更改
  • #QT(TCP网络编程-服务端)
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • $jQuery 重写Alert样式方法
  • (+4)2.2UML建模图
  • (007)XHTML文档之标题——h1~h6
  • (70min)字节暑假实习二面(已挂)
  • (C)一些题4
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • (纯JS)图片裁剪
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (七)理解angular中的module和injector,即依赖注入
  • (三)c52学习之旅-点亮LED灯
  • (十八)用JAVA编写MP3解码器——迷你播放器