zoukankan      html  css  js  c++  java
  • Zookeeper

    一、介绍

     01) 分布式协调服务的开源框架,主要解决分布式集群中应用系统间的一致性问题.
            02) 小文件的存储系统(数据存放在内存中,数据量有大小限制), 以树形结构进行组织数据
            03) 可以维护和监控数据状态的变化,通过监控数据状态的变化,达到分布式系统中集群管理的效果.
            04) 分布式程序: 可以多台服务器部署(可靠 稳定)
            05) zookeeper是一个主从架构集群(一个大哥带着多个小弟干活)

    二、特性

     01) 全局数据一致性
               无论客户端连到哪一个 ZooKeeper 服务器上,其看到的服务端数据模型都是一致的.
            02) 原子性
               一次数据更新要么成功(过半更新成功),要么失败,不存在中间状态
            03) 可靠性
               一旦一次更改请求被应用,更改的结果就会被持久化,直到被下一次更改覆盖
            04) 顺序性
               客户端发起的事务请求,最终将会严格地按照顺序被应用到 ZooKeeper 中去

    三、角色介绍

    01) 主角色:leader
                事务性请求的唯一处理和调度者,保证集群事务处理的顺序性,同时全局统一协调管理各个follower
           02) 从角色
                响应非事务处理请求(查询请求),转发事务请求给leader,参与leader的选举投票
           03) observer 观察者角色
                没有投票选举权的follower,可以响应非事务处理请求,转发事务请求给leader
                通常用于zk集群扩大读性能

    四、安装部署

            01) 上传zookeeper的安装包到一台服务器上
                cd /export/software
                rz  选择zookeeper的安装包进行上传
            02) 解压zookeeper到指定的目录
                tar -zxf zookeeper-3.4.5-cdh5.14.0.tar.gz -C /export/servers/
                cd /export/servers/
            03) 修改zookeeper的配置文件
                cd /export/servers/zookeeper-3.4.5-cdh5.14.0/conf
                mv zoo_sample.cfg  zoo.cfg
                vi zoo.cfg

                修改内容如下:
                    dataDir=/export/data/zk
                配置文件底部添加如下内容:
                    server.1=hadoop01:2887:3887
                    server.2=hadoop02:2887:3887
                    server.3=hadoop03:2887:3887
                备注:
                    2181: zookeeper客户端连接端口
                    2887: 服务器间通信的端口
                    3887: 选举的端口
            04) 将配置好的zookeeper分发给其他两台主机上
                cd /export/servers/
                scp -r zookeeper-3.4.5-cdh5.14.0/ root@hadoop02:$PWD   //将zookeeper复制到node02的同级目录下
                scp -r zookeeper-3.4.5-cdh5.14.0/ root@hadoop03:$PWD   //将zookeeper复制到node03的同级目录下

                备注:
                    scp远程拷贝
                    -r  拷贝文件夹
                    $PWD: 和当前目录一致
            05) 分别在三台主机上创建数据存放目录和myid文件
                hadoop01:执行的命令
                    mkdir -p  /export/data/zk
                    echo "1" > /export/data/zk/myid       //将1字符串写入myid这个文件中,文件位置和文件名不可以修改
                    cat /export/data/zk/myid             //此命令用于查看此文件有没有正确写入 1

                hadoop02:执行的命令
                    mkdir -p  /export/data/zk
                    echo "2" > /export/data/zk/myid
                    cat /export/data/zk/myid             //此命令用于查看此文件有没有正确写入 2

                hadoop03:执行的命令
                    mkdir -p  /export/data/zk
                    echo "3" > /export/data/zk/myid
                    cat /export/data/zk/myid            //此命令用于查看此文件有没有正确写入 3

            06) 配置zookeeper的环境变量
                vim /etc/profile
                    export ZK_HOME=/export/servers/zookeeper-3.4.5-cdh5.14.0
                    export PATH=$PATH:$ZK_HOME/bin
                source /etc/profile 让环境变量生效
            07) 启动和关闭zookeeper集群
                三台服务器逐个启动: zkServer.sh start
                停止zookeeper的命令: zkServer.sh stop
            08) 查看zookeeper集群的状态
                zkServer.sh status
            09) 编写一键启动脚本
                #!/bin/sh
                echo "启动zookeeper中...."
                for host in hadoop01 hadoop02 hadoop03
                do
                ssh -q $host "source /etc/profile; /export/servers/zookeeper-3.4.5-cdh5.14.0/bin/zkServer.sh start"
                done

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    MySQL Connector Net 6.6.5 Entity Framework 显式预加载 Eager Load Bug
    MySQL 5.6 Replication 复制 FAQ
    MySQL 实现 EF Code First TimeStamp/RowVersion 并发控制
    Linux 系统命令备忘
    MySQL 自增列插入0值的方法
    【转载】将数据存储到SmartObject中
    【转载】使用C#代码发起K2 Blackpearl流程
    【转载】WorkFlow、BPM、SOA
    百度统计喻友平:谈如何更好的优化网站质量
    【转载】浅识K2 blackpearl中SmartObject
  • 原文地址:https://www.cnblogs.com/haojia/p/12386219.html
Copyright © 2011-2022 走看看