• 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
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    HDU 2433 Travel (最短路,BFS,变形)
    HDU 2544 最短路 (最短路,spfa)
    HDU 2063 过山车 (最大匹配,匈牙利算法)
    HDU 1150 Machine Schedule (最小覆盖,匈牙利算法)
    290 Word Pattern 单词模式
    289 Game of Life 生命的游戏
    287 Find the Duplicate Number 寻找重复数
    283 Move Zeroes 移动零
    282 Expression Add Operators 给表达式添加运算符
    279 Perfect Squares 完美平方数
  • 原文地址:https://www.cnblogs.com/PushyTao/p/16196705.html
Copyright © 2020-2023  润新知