Hadoop 分布式下安装和配置 ZooKeeper(CentOS 7系统)

软件版本

  • 电脑系统:macOS 10.14.6

  • 虚拟机软件:Parallels Desktop15

  • Hadoop各节点节点操作系统:CentOS-7-x86_64-Minimal-1908.iso

  • CentOS 7 JDK版本:jdk1.8.0_162

  • Hadoop版本:hadoop-2.7.7

  • ZooKeeper版本:zookeeper-3.4.13


环境配置说明

  • 电脑配置:MacBook Pro 13(8G + 256G)

  • 三台 CentOS 7 配置:内存1G、硬盘13G(与Mac完全隔离的虚拟机)

  • 三台 CentOS 7 的名字及IP:node1(10.211.55.18)、node2(10.211.55.19)、node3(10.211.55.20)

  • 三台虚拟机的用户名:lyh

  • node为主结点、node2、node3为次节点


安装前提

安装jdk,并配置好Linux环境变量。

参考文献:Hadoop分布式集群搭建 的JDK安装部分


ZooKeeper的安装与配置

三台node主机都需要配置,这里没有采用配置好一台,分发到另外两台的方式。

  1. 本地下载zookeeper-3.4.13.tar.gz:https://archive.apache.org/dist/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz

  2. 将下载好的zookeeper-3.4.13.tar.gz上传到node1、node2、node3

    复制
    scp -r ~/Desktop/zookeeper-3.4.13.tar.gz lyh@10.211.55.18:/app
    复制
    scp -r ~/Desktop/zookeeper-3.4.13.tar.gz lyh@10.211.55.19:/app
    复制
    scp -r ~/Desktop/zookeeper-3.4.13.tar.gz lyh@10.211.55.20:/app
  3. 将上传上来的zookeeper-3.4.13.tar.gz解压

    复制
    cd /app
    复制
    tar -zxvf zookeeper-3.4.13.tar.gz
  4. 为zookeeper-3.4.13创建软链接

    复制
    ln -s zookeeper-3.4.13 zookeeper
  5. 拷贝simple_zoo.cfg 为 zoo.cfg

    复制
    cd /app/zookeeper/conf
    复制
    cp zoo_sample.cfg zoo.cfg
  6. 编辑zoo.cfg文件

    复制
    cd /app/zookeeper/conf
    复制
    vim zoo.cfg

    修改内容如下(可以参考):

    复制
    # 服务器与服务器之间 或 客户端与服务器之间维持心跳的时间间隔,每隔tickTime时间就会发送一个心跳。
    tickTime=2000
    # 配置 Zookeeper 接受客户端(此客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个
    # 心跳时间间隔数。当已超过initLimit个tickTime长度后 Zookeeper 服务器还没有收到客户端的返回信息,则表明客户端连接失败。总的时间长度就是 initLimit * tickTime 秒。
    initLimit=10
    # 配置 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 syncLimit * tickTime 秒。
    syncLimit=5
    # Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
    dataDir=/app/zookeeper/data
    # dataDir和dataLogDir分到不同的目录里
    dataLogDir=/app/zookeeper/dataLog
    # Zookeeper服务器监听的端口,以接受客户端的访问请求。
    clientPort=2181
    # 服务器名称与地址:集群信息
    # server.A=B:C:D
    # A 为服务器编号、B 为服务器的 ip 地址、C 为这个服务器与集群中的 Leader 服务器交换信息的端口
    # D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,此端口就是用来执行选举时服务器相互通信的端口。
    # 2888端口是zookeeper服务相互通信使用的,3888端口是zookeeper服务选举使用的
    server.1=node1:2888:3888
    server.2=node2:2888:3888
    server.3=node3:2888:3888
  7. 配置 ZooKeeper 环境变量

    复制
    vim /etc/profile

    添加如下内容:

    复制
    # ZOOKEEPER
    export ZOOKEEPER_HOME=/app/zookeeper
    export PATH=$ZOOKEEPER_HOME/bin:$PATH

    使配置生效

    复制
    source /etc/profile
  8. 创建对应配置文件信息的文件夹

    复制
    cd /app/zookeeper
    mkdir data
    mkdir dataLog

    如果想要分发到另外两台虚拟机,可以在现在这个时候分发。

  9. 配置 myid 文件

    这个文件在上述dataDir 指定的目录下,这个文件里面就只有一个数据,就是 A 的值,Zookeeper 启动时会读取这个文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是那个 server。

    • 方式1

      node1:

      复制
      echo "1" >> /app/zookeeper/data/myid

      node2:

      复制
      echo "2" >> /app/zookeeper/data/myid

      node3:

      复制
      echo "3" >> /app/zookeeper/data/myid
    • 方式2

      node1

      复制
      touch /app/zookeeper/data/myid
      vim /app/zookeeper/data/myid

      添加内容:1


      node2

      复制
      touch /app/zookeeper/data/myid
      vim /app/zookeeper/data/myid

      添加内容:2


      node3

      复制
      touch /app/zookeeper/data/myid
      vim /app/zookeeper/data/myid

      添加内容:3


  10. 启动ZooKeeper

    在ZooKeeper集群的每个结点上,执行启动ZooKeeper服务的脚本。zkServer.sh start

    复制
    [root@node1 ~ ]# zkServer.sh start
    [root@node2 ~ ]# zkServer.sh start
    [root@node3 ~ ]# zkServer.sh start
  11. 验证个节点的状态。zkServer.sh status

    复制
    [root@node1 zookeeper]# zkServer.sh status
    [root@node2 zookeeper]# zkServer.sh status
    [root@node3 zookeeper]# zkServer.sh status
  12. 关闭ZooKeeper

    在ZooKeeper集群的每个结点上,执行关闭ZooKeeper服务的脚本。zkServer.sh stop

    复制
    [root@node1 zookeeper]# zkServer.sh stop
    [root@node2 zookeeper]# zkServer.sh stop
    [root@node3 zookeeper]# zkServer.sh stop

参考文献

  1. CentOS7安装配置zookeeper集群
posted @   LeeHua  阅读(207)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示

目录导航