zoukankan      html  css  js  c++  java
  • ZooKeeper安装配置

    1.什么是ZooKeeper?

    Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。

    注意,这是一个协调平台,不是管理平台。类似于红绿灯,可以协调帮助道路通畅。

    ZooKeeper起到了一个协调各个框架的作用。它并不是直接为我们的数据提供服务。

    ZooKeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,他负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,ZooKeeper就将负责通知已经在ZooKeeper上注册的那些观察者做出相应的反应。

    所以,ZooKeeper = 文件系统 + 通知机制

    2.ZooKeeper集群特点

    1)Zookeeper:一个领导者(leader),多个跟随者(follower)组成的集群。 2)Leader负责进行投票的发起和决议,更新系统状态 3)Follower用于接收客户请求并向客户端返回结果,在选举Leader过程中参与投票 4)集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。 5)全局数据一致:每个server保存一份相同的数据副本,client无论连接到哪个server,数据都是一致的。 6)更新请求顺序进行,来自同一个client的更新请求按其发送顺序依次执行。 7)数据更新原子性,一次数据更新要么成功,要么失败。 8)实时性,在一定时间范围内,client能读到最新数据。

    3.ZooKeeper的数据结构

    ZooKeeper数据模型的结构与Unix文件系统很类似,整体上可以看作是一棵树,每个节点称做一个ZNode。每一个ZNode默认能够存储1MB的数据,每个ZNode都可以通过其路径唯一标识。

    4.安装配置ZooKeeper

    1、解压ZooKeeper文件到/opt/module/下
    tar -xzvf zookeeper-3.4.10.tar.gz -C /opt/module/
    

    2、配置环境变量
    编辑sudo vim /etc/profile.d/my_env.sh
    在内部添加如下内容:

    #ZOOKEEPER_HOME
    export ZOOKEEPER_HOME=/opt/module/zookeeper-3.4.10
    export PATH=$PATH:$ZOOKEEPER_HOME/bin
    

    然后重新打开一个会话,以使环境变量生效。可以通过在命令行输入zk然后按table键看是否有补全备选项来测试ZooKeeper安装是否成功。

    然后分发环境变量

    xsync /etc/profile.d/my_env.sh
    

    3、配置ZooKeeper
    进入配置文件的文件夹/opt/module/zookeeper-3.4.10/conf,,并将zoo_sample.cfg重命名为zoo.cfg:

    cd /opt/module/zookeeper-3.4.10/conf
    
    mv zoo_sample.cfg zoo.cfg
    

    其实现在ZooKeeper已经可以单机启动了。(因为ZooKeeper默认的配置就是单机模式)

    接下来继续配置ZooKeeper的集群模式,因为单机模式没人用…………

    4、编辑zoo.cfg文件,vim zoo.cfg

    将dataDir=/tmp/zookeeper更改为:(该目录的唯一要求是当前用户对该文件夹具有写权限)

    dataDir=/opt/module/zookeeper-3.4.10/zkData
    

    5、配置集群机器,每台机器分配一个不同的Serverid
    在zoo.cfg配置文件最后添加如下内容:

    server.2=hadoop102:2888:3888
    server.3=hadoop103:2888:3888
    server.4=hadoop104:2888:3888
    

    server.x中的x即为每台机器的id,对于Serverid只有一个要求,即每台机器的serverid需各不相同即可。记住自己设置的id。

    以上配置2,3,4就是Serverid

    6、在zkData文件夹里新建一个myid文件,内容是本机的Serverid

    没有zkData文件夹的话,创建一个zkData文件夹:

    cd /opt/module/zookeeper-3.4.10
    mkdir zkData
    

    然后在zkData文件夹中新建文件myid

    在myid中写入本机的id,当前机器serverid是2,所以myid文件中只写入2。

    7、(可选配置)配置Zookeeper的LogDIR:配置bin/zkEnv.sh文件

    vim /opt/module/zookeeper-3.4.10/bin/zkEnv.sh
    

    ZOO_LOG_DIR="."改为ZOO_LOG_DIR="/opt/module/zookeeper-3.4.10/logs"

    或者:

    ZOO_LOG_DIR="${ZOOKEEPER_HOME}/logs"
    

    8、分发ZooKeeper到集群各个机器。

    xsync /opt/module/zookeeper-3.4.10/
    

    9、到集群的另外两台机器中分别修改其serverid

    echo 3 > /opt/module/zookeeper-3.4.10/zkData/myid
    
    echo 4 > /opt/module/zookeeper-3.4.10/zkData/myid
    

    10、启动

    ZooKeeper集群官方没有给群启脚本,所以需要在每台机器上同时发送执行命令:

    zkServer.sh start
    

    关闭同理:

    zkServer.sh stop
    

    然后可以通过命令:zkServer.sh status来查看集群中各个机器的状态,其中follower为从机,leader为主机。

  • 相关阅读:
    深度分析HTML5在移动开发方面的发展状况
    腾讯实习生笔试题
    更简洁的 CSS 清理浮动方式
    图片垂直居中的使用技巧
    Css Reset(复位)整理
    70565 Pro: Designing and Developing Enterprise Applications Using the Microsoft .NET Framework 3.5 考试感言
    Android SDK 有bug
    70540 TS: Microsoft Windows Mobile 5.0 Application Development 考试感言
    70565 Pro: Designing and Developing Enterprise Applications Using the Microsoft .NET Framework 3.5 考试感言
    TS:70503 Windows Communication Foundation TS: 70505 Windows Form Application Dev 考试感言
  • 原文地址:https://www.cnblogs.com/zhqin/p/11906106.html
Copyright © 2011-2022 走看看