• 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集群
    Good Good Write Bug, Day Day Up
  • 相关阅读:
    Objective--C三大特性:封装,继承,多态(零碎笔记)
    零碎的知识点
    Objective--C之《文件操作》练习代码
    Objective--C的Foundation frame之NSMutableDictionary代码
    Objective--C的Foundation frame之NSMutableArray代码
    Objective--C随笔2016年8月7日
    关于OC中的委托delegate
    javascript 绝对路径工具类
    IE 弹出框处理经验
    InputStream和OutputStream 何时使用
  • 原文地址:https://www.cnblogs.com/liyihua/p/14482426.html
Copyright © 2020-2023  润新知