CentOS7安装Zookeeper分布式集群

这篇具有很好参考价值的文章主要介绍了CentOS7安装Zookeeper分布式集群。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CentOS7安装Zookeeper分布式集群

  1. 前言
    ZooKeeper 是一个开源的分布式协调服务框架,主要用于分布式系统中的数据同步、配置管理、集群控制和命名服务等方面的处理。本文在3个系统为CentOS7的Linux节点上配置了Zookeeper分布式集群,安装配置的过程均在普通用户sxZhang的账户上完成,安装路径为~/bigdata,3个Linux节点的主机和IP的映射如下:

     10.10.10.1 host01
     10.10.10.2 host02
    10.10.10.3 host03
    

    在正式安装之前,我们需要进行免密登录的配置、JDK的安装和关闭防火墙,本文假设读者已经完成这些工作,之后直接安装Zookeeper。

    若未完成上述工作,可参考:
    免密登录参考博客:Linux 配置SSH免密登录详细步骤
    CentOS7关闭防火墙参考博客:Centos7关闭防火墙详细教程

  2. 下载zookeeper安装包

    前往zookeeper的下载页面Index of /apache/zookeeper下载相关安装包。

    注意事项:
    1)zookeeper节点必须是奇数个,因为zookeeper选举的规则:leader选举,要求可用节点数量必须大于总节点数量/2
    2)zookeeper 是使用 java 来运行的,所以需要依赖 JDK,所以安装 zookeeper 之前需要安装部署 JDK
    3) 注意关闭节点服务器的防火墙
    4) 官网上有两个tar.gz文件,bin名称结尾的包就是我们要下载的,可以直接使用。
    

    笔者选择的安装包版本为apache-zookeeper-3.8.3-bin.tar.gz

  3. 将下载的安装包使用xftp工具或rz命令上传到host01的~/bigdata/后,解压安装

    # 1.解压到当前目录
    tar -zxvf apache-zookeeper-3.8.3-bin.tar.gz
    # 2.重命名
    mv apache-zookeeper-3.8.3-bin zookeeper
    
  4. 修改环境变量

    编辑用户级环境变量的配置文件~/.bashrc,命令为vim ~/.bashrc,之后添加如下内容:

    #ZOOKEEPERR_HOME 需要与读者自己的安装路径匹配
    export ZOOKEEPER_HOME=/home/sxZhang/bigdata/zookeeper
    export PATH=$PATH:$ZOOKEEPER_HOME/bin
    

    编辑完成后,使用source ~/.bashrc或重新打开一个xshell会话终端更新环境变量,执行echo $ZOOKEEPER_HOM的结果为zookeeper的目标安装路径则正确。

    Tips:如果想在系统环境下安装配置,则需要选择/opt/usr/local等路径进行安装,且编辑文件为/etc/proflie

  5. 编辑Zookeeper的集群配置

    • 创建Zookeeper集群的数据存储目录及日志目录

      cd $ZOOKEEPER_HOME
      mkdir data
      mkdir log
      
    • 生成zookeeper配置文件

      cd ./conf
      cp zoo_sample.cfg zoo.cfg
      
    • 编辑zookeeper配置文件

      使用vim zoo.cf编辑zookeeper配置文件,在配置文件中修改如下内容:

      # 心跳时间
      tickTime=2000
      
      # follow连接leader的初始化连接时间,表示tickTime的倍数
      initLimit=10
      
      # syncLimit配置表示leader与follower之间发送消息,请求和应答时间长度。
      # 如果followe在设置的时间内不能与leader进行通信,那么此follower将被丢弃,tickTime的倍数
      syncLimit=5
      
      # 客户端连接超时时间ms
      maxClientCnxns=600
      
      # 客户端连接端口,访问 zookeeper的端口
      clientPort=2181
      
      # 节点数据存储及日志目录,需要提前创建
      dataDir=/home/sxZhang/bigdata/zookeeper/data
      dataLogDir=/home/sxZhang/bigdata/zookeeper/log
      
      server.1=10.10.10.1:2888:3888
      server.2=10.10.10.2:2888:3888
      server.3=10.10.10.3:2888:3888
      

      特别需要注意的是dataDirdataLogDirserver.x的配置,需要指定自己的Zookeeper安装路径和自己集群主机的IP。

  6. 将host01上配置好的Zookeeper文件夹打包分发到另外两个节点解压:

    集群规模较小时,分发和打包的操作可以手动在每个节点一步一步的操作,但当集群的节点规模成百上千时,显然需要一种批量操作的方式,下面代码块中的for循环语句就是用于批量处理的。Linux基础较弱看不懂该代码的读者,可自行查阅shell的循环控制语句scp的用法以及ssh远程执行命令

    使用该方式前应配置好免密登录,否则每次循环都需要输入一次密码。

    # 1.打包zookeeper文件夹
    tar -zcf zookeeper.tar.gz zookeeper
    
    # 2.以遍历的方式转发到另外两个节点
    for host in {host02,host03} #需要修改主机列表为自己的主机
    do
      scp zookeeper.tar.gz $host:~/bigdata  #修改为zk的安装路径,并保证路径存在
    done
    
    # 3..以遍历的方式在另外2个节点上解压压缩包,解压成功后删除压缩包
    for host in {host02,host03} #需要修改主机列表为自己的主机
    do
      echo 正在${host}上解压ZK压缩包到目标位置:
      ssh $host "cd ~/bigdata; tar -zxvf  ~/zookeeper.tar.gz; rm ~/zookeeper.tar.gz"
      echo 操作成功
    done
    
  7. 为每台机器配置Zookeeper的节点id

    for i in {1..3} #改成自己的id范围
    do
      node=host0$i  #改成自己的主机名形式,仅id与主机编号相同时,才可使用for循环遍历处理
      ssh $node "echo $i >~/bigdata/zookeeper/data/myid"
    done
    

    即在各个节点上,在$ZOOKEEPER_HOME/data/conf/zoo.cfgdataDir所指定的具体路径下,创建一个名为myid的文本文件,其内容为Zookeeper集群中节点的id,例如令host01、host02、host03对应的myid依次为1、2、3。

  8. 启动、查看和停止Zookeeper集群

    启动、查看和停止某个Zookeeper节点的命令分别是:

    cd $ZOOKEEPER_HOME/bin/
    ./zkServer.sh star
    ./zkServer.sh status
    ./zkServer.sh stop
    

    $ZOOKEEPER_HOME/bin/目录下存放的是zookeeper可用的可执行命令,单个节点的启动、停止、状态查看都是通过该目录下的zkServer.sh传入不同的命令参数实现的,如果正确配置了环境变量,将该目录添加到了环境变量$PATH,则可在任意路径执行该目录下的可执行文件。

    当然,因为每次仅对一个节点操作效率会很低,因此可以编写批量启动、停止、查看状态的脚步文件,首先使用vim zkcmd.sh新建一个文件,添加如下内容后保存:

    #!/bin/bash
    cmd=$1
    
    # 判断是否提供了输入参数
    if [ -z "$1" ]; then
      echo "本脚本需要输入参数cmd"
      echo -e "cmd 在 {start, stop, status} 中选择:\n-start\t启动zk集群\n-stop\t关闭zk集群\n-status\t查看zk集群状态"
      exit 1
    fi
    
    # 合法的命令集合 
    cmdlist=("start" "stop" "status")
    
    # 检查传入的命令是否合法 
    if [[ " ${cmdlist[@]} " =~ " ${cmd} " ]]; then
      # cmd合法,在zookeeper cluster上执行cmd
      for host in host{01..03}
      do
          echo 当前在${host}进行操作:
          ssh $host "zkServer.sh ${cmd}"; echo
      done
    else
      # cmd不合法,在终端进行提示
      echo "输入参数'$cmd'不合法,请从{start,stop,status}中选择命令"
    fi
    

    上述代码需要shell基础,如果读者没有shell基础,修改倒数第9行的host{01..03}亦可使用。

    保存文件后,需要对该文件添加可执行权限:

    chmod +x zkcmd.sh
    

    输入合适的参数即可批量启动、查看或关闭Zookeeper集群:

    使用sh zkcmd.sh start./zkcmd.sh start启动集群,成功的输出如下:

    当前在host01进行操作:
    ZooKeeper JMX enabled by default
    Using config: /home/sxZhang/bigdata/zookeeper/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    
    当前在host02进行操作:
    ZooKeeper JMX enabled by default
    Using config: /home/sxZhang/bigdata/zookeeper/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    
    当前在host03进行操作:
    ZooKeeper JMX enabled by default
    Using config: /home/sxZhang/bigdata/zookeeper/bin/../conf/zoo.cfg
    

    类似的,使用sh zkcmd.sh status./zkcmd.sh status查看集群状态,执行成功的输出如下:

    当前在host01进行操作:
    ZooKeeper JMX enabled by default
    Using config: /home/sxZhang/bigdata/zookeeper/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost. Client SSL: false.
    Mode: follower
    
    当前在host02进行操作:
    ZooKeeper JMX enabled by default
    Using config: /home/sxZhang/bigdata/zookeeper/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost. Client SSL: false.
    Mode: leader
    
    当前在host03进行操作:
    ZooKeeper JMX enabled by default
    Using config: /home/sxZhang/bigdata/zookeeper/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost. Client SSL: false.
    Mode: follower
    

    使用sh zkcmd.sh stop./zkcmd.sh stop停止ZK集群的运行。

    当前在host01进行操作:
    ZooKeeper JMX enabled by default
    Using config: /home/sxZhang/bigdata/zookeeper/bin/../conf/zoo.cfg
    Stopping zookeeper ... STOPPED
    
    当前在host02进行操作:
    ZooKeeper JMX enabled by default
    Using config: /home/sxZhang/bigdata/zookeeper/bin/../conf/zoo.cfg
    Stopping zookeeper ... STOPPED
    
    当前在host03进行操作:
    ZooKeeper JMX enabled by default
    Using config: /home/sxZhang/bigdata/zookeeper/bin/../conf/zoo.cfg
    Stopping zookeeper ... STOPPED
    

    如果想在任何路径都可以执行zkcmd.sh [start/stop/status],可以将zkcmd.sh拷贝到各个节点的$ZOOKEEPER_HOME/bin下。
    至此,拥有3个节点分布式zookeeper集群搭建成功。文章来源地址https://www.toymoban.com/news/detail-796097.html

到了这里,关于CentOS7安装Zookeeper分布式集群的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Hadoop集群搭建记录 | 云计算[CentOS7] | 伪分布式集群 Master运行WordCount

    Hadoop集群搭建记录 | 云计算[CentOS7] | 伪分布式集群 Master运行WordCount

    本系列文章索引以及一些默认好的条件在 传送门 首先需要明确eclipse安装目录,然后将hadoop-eclipse-plugin_版本号.jar插件放在安装目录的dropins下 关于插件,可以通过博主上传到csdn的免费资源获取,链接 具体版本可以自己选择: 在eclipse界面中依次选择:Window→show view→other→

    2023年04月09日
    浏览(22)
  • CentOS7安装Flink1.17伪分布式

    CentOS7安装Flink1.17伪分布式

    拥有1台CentOS7 CentOS7安装好jdk,官方文档要求java 11,使用java 8也可以。可参考 CentOS7安装jdk8 下载安装包 ​ 创建软链接 添加如下环境变量 让环境变量立即生效 进入flink配置目录,查看flink的配置文件 配置flink-conf.yaml 找到如下配置项,并按照如下修改,其中node1为机器主机名

    2024年04月14日
    浏览(12)
  • Linux从零搭建Hadoop集群(CentOS7+hadoop 3.2.0+JDK1.8+Mapreduce完全分布式集群案例)

    Linux从零搭建Hadoop集群(CentOS7+hadoop 3.2.0+JDK1.8+Mapreduce完全分布式集群案例)

    和相关配置版本 :Linux CentOS Hadoop Java 版本: CentOS7 Hadoop3.2.0 JDK1.8 虚拟机参数信息内存3.2G、处理器2x2、内存50G ISO:CentOS-7-x86_64-DVD-2009.iso 基本主从思路: 先把基础的设置(SSH、JDK、Hadooop、环境变量、Hadoop和MapReduce配置信息)在一台虚拟机(master)上配好,通过

    2024年02月05日
    浏览(10)
  • Linux-一篇文章,速通Hadoop集群之伪分布式,完全分布式,高可用搭建(附zookeeper,jdk介绍与安装)。

    Linux-一篇文章,速通Hadoop集群之伪分布式,完全分布式,高可用搭建(附zookeeper,jdk介绍与安装)。

    文章较长,附目录,此次安装是在VM虚拟环境下进行。文章第一节主要是介绍Hadoop与Hadoop生态圈并了解Hadoop三种集群的区别,第二节和大家一起下载,配置Linux三种集群以及大数据相关所需的jdk,zookeeper,只需安装配置的朋友可以直接跳到文章第二节。同时,希望我的文章能帮

    2024年03月19日
    浏览(9)
  • 大数据-安装 Hadoop3.1.3 详细教程-伪分布式配置(Centos7)

    大数据-安装 Hadoop3.1.3 详细教程-伪分布式配置(Centos7)

    **相关资源:**https://musetransfer.com/s/q43oznf6f(有效期至2023年3月16日)|【Muse】你有一份文件待查收,请点击链接获取文件 1.检查是否安装ssh (CentOS 7 即使是最小化安装也已附带openssh 可跳过本步骤) 若已安装进行下一步骤 若未安装 请自行百度 本教程不做过多讲解 2.配置ss

    2023年04月08日
    浏览(10)
  • 分布式应用:Zookeeper 集群与kafka 集群部署

    分布式应用:Zookeeper 集群与kafka 集群部署

    目录 一、理论 1.Zookeeper   2.部署 Zookeeper 集群 3.消息队列  4.Kafka 5.部署 kafka 集群 6.Filebeat+Kafka+ELK 二、实验 1.Zookeeper 集群部署 2.kafka集群部署 3.Filebeat+Kafka+ELK 三、问题          1.解压文件异常 2.kafka集群建立失败 3.启动 filebeat报错 4.VIM报错 5. kibana无法匹配 四、总结

    2024年02月14日
    浏览(35)
  • ZooKeeper+HBase分布式集群环境搭建

    ZooKeeper+HBase分布式集群环境搭建

    安装版本:hadoop-2.10.1、zookeeper-3.4.12、hbase-2.3.1 一、zookeeper 集群搭建与配置 1. 下载zookeeper安装包 2. 解压移动zookeeper 3. 修改配置文件(创建文件夹) 4. 进入conf/ 5. 修改zoo.cfg文件 6. 进入/usr/local/zookeeper-3.4.12/zkdatas/这个路径下创建一个文件,文件名为myid ,文件内容为1 7. 拷贝到

    2024年02月08日
    浏览(12)
  • Zookeeper 伪分布式集群搭建详细步骤

    在同一台服务器上,部署一个 3 个 ZooKeeper 节点组成的集群,这样的集群叫伪分布式集 群,而如果集群中的 3 个节点分别部署在 3 个服务器上,那么这种集群就叫真正的分布式 集群。 这里,记录一下搭建一个 3 节点的伪分布式集群的过程,真正的分布式集群的搭建过程和 伪

    2024年02月08日
    浏览(7)
  • 第四节 zookeeper集群与分布式锁

    第四节 zookeeper集群与分布式锁

    目录 1. Zookeeper集群操作 1.1 客户端操作zk集群 1.2 模拟集群异常操作 1.3 curate客户端连接zookeeper集群 2. Zookeeper实战案例 2.1 创建项目引入依赖 2.2 获取zk客户端对象 2.3 常用API 2.4 客户端向服务端写入数据流程 2.5 服务器动态上下线、客户端动态监听 2.6 测试 3.Zookeeper分布式锁 3.

    2024年02月20日
    浏览(4)
  • 分布式集群框架——有关zookeeper的面试考点

    分布式集群框架——有关zookeeper的面试考点

          当涉及到大规模分布式系统的协调和管理时,Zookeeper是一个非常重要的工具。 1. 分布式协调服务:Zookeeper是一个分布式协调服务,它提供了一个高可用和高性能的环境,用于协调和同步分布式系统中的各个节点。它通过提供共享的命名空间和一致性的数据模型来简化开

    2024年02月11日
    浏览(5)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包