• Zookeeper集群搭建记录 | 云计算[CentOS7] | Zookeeper集群搭建


    写在前面

    本系列文章索引以及一些默认好的条件在 传送门

    在配置Zookeeper之前,建议先配置Hadoop集群,具体的操作流程博主已更新完成,链接

    step1 Zookeeper安装包的下载

    Zookeeper的安装包版本不太相同,大致分为有编译过的和没有编译过的(如有错请留言指正
    一般情况下对于我们在解压配置就能使用的情况下,我们可以下载编译之后的版本,比如在官网上:
    在这里插入图片描述
    下面代表着源代码,我们应该选择不在红框之内的
    Zookeeper仓库
    本文以3.5.9为例,应该下载上方连接中的:
    在这里插入图片描述
    这个版本的解压后和其他未编译过的有个显著的不同:在解压后有一个lib文件夹,通常里面保存着应该会用到的文件等
    下载速度较快,不再网盘分享

    step2 关闭防火墙

    如果防火墙处于打开的状态,会影响到虚拟机之间的互相访问,以及从主机通过web浏览器查看各个服务器节点的状态
    命令:

    systemctl stop firewalld
    systemctl disable firewalld
    systemctl status firewalld
    
    

    step3 解压配置Zookeeper

    1 解压并创建修改/conf/zoo.cfg文件

    将下载好的文件放到master节点的/usr/local/之下
    然后解压文件,命令:

    tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz
    

    解压之后,将文件夹的名字去掉版本号:
    mv apache-zookeeper zookeeper

    然后跳转到./zookeeper/conf下,将官方给的zoo.cfg示例文件改名:

    cp zoo_sample.cfg zoo.cfg
    

    然后编辑zoo.cfg
    大致改为:
    在这里插入图片描述
    切勿盲目CV,记得修改为自己的主机名

    # The number of milliseconds of each tick
    tickTime=2000
    # The number of ticks that the initial 
    # synchronization phase can take
    initLimit=10
    # The number of ticks that can pass between 
    # sending a request and getting an acknowledgement
    syncLimit=5
    # the directory where the snapshot is stored.
    # do not use /tmp for storage, /tmp here is just 
    # example sakes.
    dataDir=/usr/local/zookeeper/data/
    # the port at which the clients will connect
    clientPort=2181
    # master
    server.1=0.0.0.0:2881:3881
    server.2=slave01-315:2881:3881
    server.3=slave02-315:2881:3881
    

    2 创建并修改/data/myid

    在zookeeper根目录下,我们再创建一个data文件夹
    mkdir -p /usr/local/zookeeper/data
    然后创建并编辑myid文件

    cd /usr/local/zookeeper/data
    touch myid
    vim myid
    

    在master节点的myid中,写入一个数字1
    注意不得加任何空格,任何注释,必须单纯一行一列一个字符’1’

    step4 配置文件传送到其他节点

    我们需要将从master的文件放到slave1,slave2上

    scp -r /usr/local/zookeeper slave1:/usr/local
    scp -r /usr/local/zookeeper slave2:/usr/local
    

    在slave1上,我们需要把/data/myid中的内容改为2
    在slave2上,我们需要把/data/myid中的内容改为3
    注意不得加任何空格,任何注释,必须单纯一行一列一个字符’1’
    在slave1上,我们需要把/conf/zoo.cfg改成:
    在这里插入图片描述
    切勿盲目CV,记得修改为自己的主机名

    # The number of milliseconds of each tick
    tickTime=2000
    # The number of ticks that the initial 
    # synchronization phase can take
    initLimit=10
    # The number of ticks that can pass between 
    # sending a request and getting an acknowledgement
    syncLimit=5
    # the directory where the snapshot is stored.
    # do not use /tmp for storage, /tmp here is just 
    # example sakes.
    dataDir=/usr/local/zookeeper/data/
    # the port at which the clients will connect
    clientPort=2181
    
    server.1=master315:2881:3881
    server.2=0.0.0.0:2881:3881
    server.3=slave02-315:2881:3881
    

    在slave2下,我们需要将/conf/zoo.cfg文件修改为:
    在这里插入图片描述
    切勿盲目CV,记得修改为自己的主机名

    # The number of milliseconds of each tick
    tickTime=2000
    # The number of ticks that the initial 
    # synchronization phase can take
    initLimit=10
    # The number of ticks that can pass between 
    # sending a request and getting an acknowledgement
    syncLimit=5
    # the directory where the snapshot is stored.
    # do not use /tmp for storage, /tmp here is just 
    # example sakes.
    dataDir=/usr/local/zookeeper/data/
    # the port at which the clients will connect
    clientPort=2181
    
    server.1=master315:2881:3881
    server.2=slave01-315:2881:3881
    server.3=0.0.0.0:2881:3881
    

    如果是小白从头开始配的话,应该不会出现2181端口被占用的情况,如果说自己的2181端口被占用,可以kill -9该进程
    查看进程是否被占用:
    netstat -nltp | grep 2181
    若显示空白则恭喜你不需要进行任何操作
    若显示除了某进程占用该端口,应该kill -9 进程号

    step5 设置环境变量

    我们修改~/.bashrc文件

    vim ~/.bashrc
    加入:
    export PATH=$PATH:/usr/local/zookeeper/bin
    然后:
    source ~/.bashrc
    

    现在应该使得该文件生效了

    step6 启动zookeeper

    zkServer.sh start
    这时,我们查看zookeeper/data/下的所有文件:

    cd /usr/local/zookeeper/data
    ls -laF
    
    

    发现除了myid还会有另外的若干文件(version-2文件夹&&zookeeper_server.pid),这是请注意:
    如果不是通过命令使得zookeeper自动关闭的,在下次启动前均需删除该目录下除了myid的所有文件
    在三个节点均启动zookeeper集群
    启动命令是:zkServer.sh start
    重启命令是:zkServer.sh restart
    关闭命令是:zkServer.sh stop
    查看状态命令是:zkServer.sh status

    注意,在我们依次启动节点的zookeeper的过程中,可能会遇到首先启动的节点的日志文件中出现拒绝连接的情况,这时请忽略,原因是:
    后续节点未启动,所以会导致和其他未开启的节点通信失败导致拒绝连接,我们应当查看最后启动zookeeper的结点的日志文件(/usr/local/zookeeper/logs/),

    step7 启动成功及状态查看

    在我们成功启动集群之后,应该会看到:
    master
    在这里插入图片描述

    slave1:
    在这里插入图片描述

    slave2:
    在这里插入图片描述

    出现started则证明启动成功,我们查看状态:

    master:
    在这里插入图片描述
    slave1:
    在这里插入图片描述

    slave2:
    在这里插入图片描述

    在此,发现master为leader,其余两个节点为follower
    这里的leader由zookeeper内部选举产生,谁是leader均有可能,不必太在意

    step8 验证zookeeper安装

    在每个节点均输入:jps来查看相关进程
    master:
    在这里插入图片描述
    slave1:
    在这里插入图片描述
    slave2:
    在这里插入图片描述
    到这里进本就证明安装没大问题了
    但是为了严谨一点,我们测试下功能

    step9 zookeeper功能测试

    我们进入zookeeper的命令行工具:
    红框是命令zkCli.sh -server master315:2181
    在这里插入图片描述
    在箭头所示区域输入:
    create /hello world

    get /hello
    在这里插入图片描述
    可以发现莫得问题,然后就可以退出了
    输入:
    quit
    在这里插入图片描述

    到此,Zookeeper安装结束
    如有问题可以 留言 or 私信 or q_2649432030
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    js数组
    js中严格模式
    js 中bind
    HDU 2846(Trie树)
    HDU 4825(01 Trie树)
    Codeforces 900B (Java高精度或模拟)
    2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 I Reversion Count(Java大数)
    2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 B Goldbach (素数测试,随机化算法)
    HDU 2256(矩阵快速幂)
    HDU 6029(思维)
  • 原文地址:https://www.cnblogs.com/PushyTao/p/16196705.html
Copyright © 2020-2023  润新知