美文网首页
zookeeper 安装配置

zookeeper 安装配置

作者: 周末不加班 | 来源:发表于2019-01-17 18:13 被阅读0次

    zookeeper概念简介:

    ZooKeeper集群是由多台机器组成的,每台机器都充当了特定的角色,各种角色在协作过程中履行自己的任务,从而对外提供稳定、可靠的服务。

    1. Zookeeper是为别的分布式程序服务

    2. Zookeeper\color{red}{本身就是一个分布式程序}(只要有半数以上节点存活,zk就能正常服务)

    3. Zookeeper所提供的服务涵盖:主从协调、服务器节点动态 上下线、统一配置管理、分布式共享锁、统一名称服务……

    4. 虽然说可以提供各种服务,但是zookeeper在底层其实只提供了两个功能:
      \color{red}{管理(存储,读取)用户程序提交的数据}
      \color{red}{并为用户程序提供数据节点监听服务}

    由上图可知,ZooKeeper集群由多台机器组成,客户端的请求有可能被分配给任何一台机器来处理。考虑下面一个场景:客户端A问机器1,现在几点了,机器1回答下午两点半;与此同时,客户端B问机器2,现在几点了,机器2说,凌晨三点。两个客户端一交流,发现路唇不对马嘴,整个世界就乱了。可见,ZooKeeper集群时刻需要保持内部统一,无论客户端连接哪台机器,给出的响应应该保持一致。

    为了保证数据的一致性,ZooKeeper对机器进行了角色划分

    在每台机器数据保持一致的情况下,ZooKeeper集群自然可以保证,对于每次查询都返回同样的结果。但是,如果客户端发起增、删、改这类会引起数据变动的请求呢?多台机器自说自话,你让往东,他让往西,你要打狗,他要撵鸡,听谁的?

    正所谓,家有千口,主事一人。不管有多少台机器,只能有一台机器充当Leader的角色,只有Leader才有权力发起更改数据的操作,Follower如果接收到了更改数据的请求,需要转交给Leader来处理。

    Leader接受到一个更改数据的请求后,会广播消息:

    每个Follower请注意!现在颁布001号命令,对某个节点执行某项操作。收到请回答!

    Follower按照Leader的要求执行完任务之后会,会发送一条消息:

    老大老大,任务执行完毕!

    一旦Leader收到了半数以上的Follower的确认消息,就判定该操作已生效,会再发一条广播:

    每个Follower请注意!001号命令已生效!

    https://cloud.tencent.com/developer/article/1031825


    zookeeper安装:

    zookeeper安装3步骤:下载,解压,配参数 就这么简单

    # tar -zxvf zookeeper-3.4.13.tar.gz -C /usr/mysoftware/
    # mv zookeeper-3.4.13 zookeeper
    
    • 删除无用的目录与文件
    //在安装根目录下
    rm -rf src/ *.xml *.txt *.md
    

    zookeeper配置:

    • 配置文件在conf文件夹下
      其中的zoo_sample.cfg不能直接使用它只是一个样本文件,需要重命名为zoo.cfg

    sample 样品

    cp zoo_sample.cfg zoo.cfg
    
    • vi zoo.cfg 配置
    # 每个心跳周期的毫秒数
    tickTime=2000
    # 初始化阶段可以花去的心跳个数 (10个心跳单位)
    initLimit=10
    # 从返送请求到获得相应最长时间(5个心跳单位) 
    # 超过时间认为对方挂了
    syncLimit=5
    # 数据\工作 目录
    dataDir=/usr/mysoftware/Workspace/zookeeper
    # 客户端请求的端口,~需要开放端口~
    clientPort=2181
    
    # 新增
    # 配置集群中有几台机器
    # 2888 Leader与Follower通信端口
    # 3888 投票端口
    # 为给集群服务器定义server.1 2 3编号 
    # ~②需要在数据目录配置myid文件并定义编号1|2|3 ~
    server.1=192.168.33.141:2888:3888
    server.2=192.168.33.142:2888:3888
    server.3=192.168.33.143:2888:3888
    
    • clientPort=2181 为客户端请求的端口,除此之外还有选举投票端口、Leader与Follower通信端口,后期还会有Hadoop、hive、storm等端口都需要防火墙开放 由于集群在内网中工作并不会暴漏给外界,所以直接关闭防火墙,在真实生产中也如此
    #停止firewall防火墙
    systemctl stop firewalld.service 
    #禁止firewall开机启动
    systemctl disable firewalld.service 
    
    • 根据server.1,server.2,server.3对应的服务器在每个数据目录下配置myid文件并给每个服务器编号1 2 3
    cd /usr/mysoftware/Workspace/zookeeper
    echo 1 > myid
    

    常用命令

    • 启动:
      bin目录下执行 ./zkServer.sh start
      出现Starting zookeeper ... STARTED启动成功

    • 查看从、主状态: leader 为主 follower 为从
      ./zkServer.sh status

    • 停止:
      ./zkServer.sh stop

    相关文章

      网友评论

          本文标题:zookeeper 安装配置

          本文链接:https://www.haomeiwen.com/subject/gjpidqtx.html