zoukankan      html  css  js  c++  java
  • zookeeper安装教程

    Zookeeper基础知识、体系结构、数据模型

    ◊  zookeeper是一个类似hdfs的树形文件结构, zookeeper可以用来保证数据在(zk)集群之间的数据的事务性一致

    ◊  zookeeper有watch事件,是一次性触发的,当watch监视的数据发生变化时,通知设置了该watch的client,即watcher

    ◊  zookeeper有三个角色: Learner, Follower, Observer

    ◊  zookeeper应用场景:

    统一命名服务(Name Service)

    配置管理(Configuration Management)

    集群管理(Group Membership)

    共享锁(Locks)

    队列管理

    1.     单机版

    安装步骤:

    第一步:解压缩压缩包

    tar -zxvf zookeeper-3.4.6.tar.gz

    第二步:进入zookeeper-3.4.6目录,创建data文件夹。

    第三步:把zoo_sample.cfg改名为zoo.cfg

    [root@localhost conf]# mv zoo_sample.cfg zoo.cfg

    第四步:修改data属性:dataDir=/usr/zookeeper-3.4.6/data

    第五步:启动zookeeper     [root@localhost bin]# ./zkServer.sh start

    关闭:    [root@localhost bin]# ./zkServer.sh stop

    查看状态:[root@localhost bin]# ./zkServer.sh status

    2.     伪集群版

    2.1 结构:一共3个节点

    2.2 解压安装包并在同一台虚拟机上复制3份

    tar -zxvf zookeeper-3.4.6.tar.gz –C /usr/local

    mkdir /usr/local/solr-cloud

     

    2.3 分别到每个zookeeper下修改配置文件

    cp zoo_sample.cfg zoo.cfg

    vim zoo.cfg 修改三处

    (1)    dataDir=/usr/local/solr-cloud/zookeeper01/data

    (2)    因为在同一台服务器上装3个zookeeper节点,所以要改客户端连接zookeeper的端口号(zookeeper对外提供服务的端口):clientPort=2181

    (3)    最后面加上节点列表,其中2881那一列指的是节点间内部通信的端口,3881那一列指的是投票选举的端口:

    server.1=192.168.1.123:2881:3881

    server.2=192.168.1.123:2882:3882

    server.3=192.168.1.123:2883:3883

    2.4 服务器标识配置

    mkdir /usr/local/solr-cloud/zookeeper01/data

    在data目录下创建一个文件myid:   touch myid

          填写内容为1:  vim myid (内容为服务器标识: 1)

    2.5 启动zookeeper集群

    写一个批处理可执行文件来启动,免得麻烦

    vim start_all_zookeeper.sh

    在该文件中写:

    cd zookeeper01/bin

    ./zkServer.sh start

    cd ../../

    cd zookeeper02/bin

    ./zkServer.sh start

    cd ../../

    cd zookeeper03/bin

    ./zkServer.sh start

    cd ../../

    修改文件权限:chmod u+x start_all_zookeeper.sh

    3.     集群版

    3.1 结构:一共三个节点

    (zk服务器集群规模不小于3个节点),要求服务器之间系统时间保持一致

    3.2 解压zk与环境变量配置

    进行解压: tar zookeeper-3.4.5.tar.gz

    重命名: mv zookeeper-3.4.5 zookeeper

    修改环境变量: vim /etc/profile

    export ZOOKEEPER_HOME=/usr/local/zookeeper

    export PATH=.:$ZOOKEEPER_HOME/bin:$JAVA_HOME/bin:$PATH

    刷新: source /etc/profile

    3.3 到zookeeper下修改配置文件

    cd /usr/local/zookeeper/conf

    mv zoo_sample.cfg zoo.cfg

    vim zoo.cfg 修改两处

    (1)dataDir=/usr/local/zookeeper/data

    (2)最后面添加

    server.0=192.168.1.121:2888:3888

    server.1=192.168.1.122:2888:3888

    server.2=192.168.1.123:2888:3888

    3.4 服务器标识配置:

    在zookeeper下创建文件夹: mkdir data

    在data下创建文件myid并填写内容为0:  vim myid (内容为服务器标识: 1)

    复制/etc/profile文件 和zookeeper目录到192.168.1.122和192.168.1.123把192.168.1.122、192.168.1.123中的myid文件里的值修改为2和3

    3.5 启动zookeeper:

    路径: /usr/local/zookeeper/bin(由于上面配置了环境变量,因此这里可以不在该路径下启动)
        执行: zkServer.sh start(注意这里3台机器都要进行启动)
        状态检查: zkServer.sh status(在三个节点上检验zk的mode,一个leader和俩个follower)

    3.6 操作zookeeper (shell)

    zkCli.sh 进入zookeeper客户端根据提示命令进行操作:
    查找: ls / ls /zookeeper
    创建并赋值: create /ygz hadoop
    获取: get /ygz
    设值: set /ygz baihezhuo
    可以看到zookeeper集群的数据一致性
    创建节点有俩种类型:短暂(ephemeral)持久(persistent)

    附:zoo.cfg详解

    tickTime: 基本事件单元,以毫秒为单位。这个时间是作为 Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每隔 tickTime时间就会发送一个心跳。

    dataDir: 存储内存中数据库快照的位置,顾名思义就是 Zookeeper保存数据的目录,默认情况下, Zookeeper将写数据的日志文件也保存在这个目录里。
        clientPort: 这个端口就是客户端连接 Zookeeper 服务器的端口, Zookeeper会监听这个端口,接受客户端的访问请求。
        initLimit: 这个配置项是用来配置 Zookeeper接受客户端初始化连接时最长能忍受多少个心跳时间间隔数,当已经超过 10 个心跳的时间(也就是 tickTime)长度后Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是10*2000=20 秒。

    syncLimit: 这个配置项标识 Leader 与 Follower之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime的时间长度,总的时间长度就是 5*2000=10 秒server.A = B:C:D :

    A表示这个是第几号服务器,
    B 是这个服务器的 ip 地址;
    C 表示的是这个服务器与集群中的 Leader服务器交换信息的端口;
    D 表示的是万一集群中的 Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader

  • 相关阅读:
    Java 编程下的并发线程之间的同步代码块死锁
    Java 编程下的同步代码块
    Android 编程下两种方式注册广播的区别
    Java 编程下泛型的内部原理
    Android 编程下使用 Google 的 Gson 解析 Json
    c# 调用音库开发英语单词记忆本
    在.Net中实现RichClient+Restful+JPA架构探索实现
    Extjs 常用正则式
    企业内IT部门的一些问题总结
    WinServer2003部署VS2010的水晶报表
  • 原文地址:https://www.cnblogs.com/hzdzkjdxygz/p/8413653.html
Copyright © 2011-2022 走看看