zoukankan      html  css  js  c++  java
  • ZooKeeper(Zookeeper的单机安装)

    1、ZooKeeper概述

    (1)概述

    zooKeeper是一个经典的分布式数据—致性解决方案,致力于为分布式应用提供一个高性能、高可用,且具有严格顺序访问控制能力的分布式协调存储服务。

    • 维护配置信息:能够保证配置信息的高可用和配置文件的一致性
    • 分布式锁服务:一个集群是-个分布式系统,由多台服务器组成。为了提高并发度和可靠性,多台服务器上运行着同种服务。当多个服务在运行时就需要协调各服务的进度,有时候需要保证当某个服务在进行某个操作时,其他的服务都不能进行该操作,即对该操作进行加锁,如果当前机器挂掉后,释放锁并fail over到其他的机器继续执行该服务。
    • 集群管理:一个集群有时会因为各种软硬件故障或者网络故障,出现某些服务器挂掉而被移除集群,而某些服务器加入到集群中的情况,zookeeper会将这些服务器加入移出的情况通知给集群中的其他正常工作的服务器,以及时调整存储和计算等任务的分配和执行等。此外zookeeper还会对故障的服务器做出诊断并尝试修复。
    • 生成分布式唯一ID:在过去的单库单表型系统中,通常可以使用数据库字段自带的auto_increment属性来自动为每条记录生成一个唯一的ID。 但是分库分表后,就无法在依靠数据库的auto_increment属性来唯一标识一 条记录了。此时我们就可以用zookeeper在分布式环境下生成全局唯一ID。 做法如下:每次要生成一个新id时, 创建一个持久顺序节点,创建操作返回的节点序号,即为新ld, 然后把比自己节点小的删除即可数据模型

    (2)数据模型

    ZooKeeper的数据节点是树状的,每一个节点称为znode

    (3)属性

    • cZxid:数据节点创建时的事务ID
    • ctime:数据节点创建时的时间
    • mZxid:数据节点最后一-次更新时的事务ID
    • mtime:数据节点最后- -次更新时的时间
    • pZxid:数据节点的子节点最后一次被修改时的事务ID
    • cversion:子节点的更改次数
    • dataVersion:节点数据的更改次数
    • acIVersion:节点的ACL的更改次数
    • ephemeralOwner:如果节点是临时节点,则表示创建该节点的会话的SessionID;如果节点是持久节点,则该属性值为0
    • dataLength:数据内容的长度
    • numChildren:数据节点当前的子节点个数

    2、在虚拟机中安装jdk

    (1)创建一个新的用户

    使用的是useradd和passwd命令

    (2)解压jdk

    tar -xzvf jdk-8u131-linux-x64.tar.gz

    (3)配置jdk变量

    [root@zhai /]# cd home
    [root@zhai home]# ls
    20191211  20191213  221  223   zhai1997  zhang  zhb1  zhb3  zhb5       zzz
    20191212  20191214  222  zhai  zhaiuser  zhb    zhb2  zhb4  zookeeper
    [root@zhai home]# cd zookeeper
    [root@zhai zookeeper]# ls
    jdk1.8.0_131  jdk-8u131-linux-x64.tar.gz  zookeeper-3.4.10.tar.gz
    [root@zhai zookeeper]# vi .bash_profile
    # .bash_profile
    
    # Get the aliases and functions
    if [ -f ~/.bashrc ]; then
            . ~/.bashrc
    fi
    iiiii
    # User specific environment and startup programs
    
    JAVA_HOME=/home/zookeeper/jdk1.8.0_131
    export JAVA_HOME
    PATH=$JAVA_HOME/bin:$PATH
    export PATH
    
    ~
    ~
    ~
    ~

    (4)验证

    [root@zhai zookeeper]# cd /
    [root@zhai /]# java -version
    java version "1.7.0_45"
    OpenJDK Runtime Environment (rhel-2.4.3.3.el6-i386 u45-b15)
    OpenJDK Client VM (build 24.45-b08, mixed mode, sharing)

    3、在虚拟机中安装zookeeper

    (1)解压

    tar -xzvf zookeeper-3.4.10.tar.gz

    (2)进入zookeeper的conf目录

     cd /home/zookeeper/zookeeper-3.4.10/conf

    (3)复制配置文件

     cp zoo_sample.cfg zoo.cfg

    (4)在zookeeper的根目录下创建data目录

    [root@zhai zookeeper-3.4.10]# mkdir data
    [root@zhai zookeeper-3.4.10]# ls
    bin        data             ivy.xml      README_packaging.txt  zookeeper-3.4.10.jar
    build.xml  dist-maven       lib          README.txt            zookeeper-3.4.10.jar.asc
    conf       docs             LICENSE.txt  recipes               zookeeper-3.4.10.jar.md5
    contrib    ivysettings.xml  NOTICE.txt   src                   zookeeper-3.4.10.jar.sha1

    (5)进入conf目录并编辑zoo.cfg文件

     此路径用于存储zookeeper中数据的内存快照、及事物日志文件,将配置文件中的路径修改为手动创建的目录即可

    (6)启动zookeeper

    [root@zhai /]# cd /home/zookeeper/zookeeper-3.4.10/bin
    [root@zhai bin]# .zkServer.sh start
    -bash: .zkServer.sh: command not found
    [root@zhai bin]# ./zkServer.sh start
    ZooKeeper JMX enabled by default
    Using config: /home/zookeeper/zookeeper-3.4.10/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED

    (7)停止zookeeper

    [root@zhai bin]# ./zkServer.sh stop
    ZooKeeper JMX enabled by default
    Using config: /home/zookeeper/zookeeper-3.4.10/bin/../conf/zoo.cfg
    Stopping zookeeper ... STOPPED

    (8)查看状态

    [root@zhai bin]# ./zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /home/zookeeper/zookeeper-3.4.10/bin/../conf/zoo.cfg
    Error contacting service. It is probably not running.

    (9)登录

    [root@zhai bin]# ./zkCli.sh
    Connecting to localhost:2181
    2020-10-22 03:41:53,454 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.10-39d3a4f269333c922ed3db283be479f9deacaa0f, built on 03/23/2017 10:13 GMT

      

    每个人都会有一段异常艰难的时光 。 生活的压力 , 工作的失意 , 学业的压力。 爱的惶惶不可终日。 挺过来的 ,人生就会豁然开朗。 挺不过来的 ,时间也会教你 ,怎么与它们握手言和 ,所以不必害怕的。 ——杨绛
  • 相关阅读:
    【BZOJ4637】期望 Kruskal+矩阵树定理
    IEnumerable是什么
    (转)IIS windows认证
    使用pgrouting进行最短路径搜索
    Nginx设置防止IP及非配置域名访问
    java 调用c# web api 代码
    一台机器部署多个tomcat服务 nginx反向代理多个服务 笔记
    利用Kettle 从Excel中抽取数据写入SQLite
    sql server 统计信息
    sql server 索引碎片相关问题
  • 原文地址:https://www.cnblogs.com/zhai1997/p/13854287.html
Copyright © 2011-2022 走看看