zoukankan      html  css  js  c++  java
  • zookeeper 在linux上安装 & 启动 & 基本操作

    一、安装java

    sudo apt-get update
    sudo apt-get install default-jre

    二、安装zookeeper

      下载

    wget "http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz"

      解压

    tar -xf zookeeper-3.4.14.tar.gz 

      创建配置文件

    cd zookeeper-3.4.14/conf/
    cp zoo_sample.cfg zoo.cfg

      启动

    cd zookeeper-3.4.14/bin/
    ./zkServer.sh start

    三、伪集群模式

      拷贝zookeeper

    cp zookeeper-3.4.14 zookeeper-1 -r
    cp zookeeper-3.4.14 zookeeper-2 -r
    cp zookeeper-3.4.14 zookeeper-3 -r

      修改配置:修改的为各自目录conf下的zoo.cfg,将dataDir、dataLogDir及clientPort修改为各自不同的,并增加ip列表。如zk1的配置:

    # The number of milliseconds of each tick
    tickTime=2000
    # The number of ticks that the initial 
    # synchronization phase can take
    initLimit=10
    # The number of ticks that can pass between 
    # sending a request and getting an acknowledgement
    syncLimit=5
    # the directory where the snapshot is stored.
    # do not use /tmp for storage, /tmp here is just 
    # example sakes.
    dataDir=/mnt/zookeeper-1/data
    dataLogDir=/mnt/zookeeper-1/log
    # the port at which the clients will connect
    clientPort=12181
    # the maximum number of client connections.
    # increase this if you need to handle more clients
    #maxClientCnxns=60
    #
    # Be sure to read the maintenance section of the 
    # administrator guide before turning on autopurge.
    #
    # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
    #
    # The number of snapshots to retain in dataDir
    #autopurge.snapRetainCount=3
    # Purge task interval in hours
    # Set to "0" to disable auto purge feature
    #autopurge.purgeInterval=1
    
    server.1=127.0.0.1:12888:13888
    server.2=127.0.0.1:14888:15888
    server.2=127.0.0.1:16888:17888

      创建data、log目录与myid文件

    mkdir -p  /mnt/zookeeper-1/data
    mkdir -p  /mnt/zookeeper-2/data
    mkdir -p  /mnt/zookeeper-3/data
    mkdir -p  /mnt/zookeeper-1/log
    mkdir -p  /mnt/zookeeper-2/log
    mkdir -p  /mnt/zookeeper-3/log
    echo 1 > /mnt/zookeeper-1/data/myid
    echo 2 > /mnt/zookeeper-2/data/myid
    echo 3 > /mnt/zookeeper-3/data/myid

      分别启动三个zk

    ./zookeeper-1/bin/zkServer.sh start
    ./zookeeper-2/bin/zkServer.sh start
    ./zookeeper-3/bin/zkServer.sh start

      查看状态

    root@iZwz9hextk0ee6gik32377Z:~/zookeeper# for((idx=1;idx<=3;++idx)); do ./zookeeper-${idx}/bin/zkServer.sh start; done    
    ZooKeeper JMX enabled by default
    Using config: /root/zookeeper/zookeeper-1/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    ZooKeeper JMX enabled by default
    Using config: /root/zookeeper/zookeeper-2/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    ZooKeeper JMX enabled by default
    Using config: /root/zookeeper/zookeeper-3/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    root@iZwz9hextk0ee6gik32377Z:~/zookeeper# for((idx=1;idx<=3;++idx)); do ./zookeeper-${idx}/bin/zkServer.sh status; done     
    ZooKeeper JMX enabled by default
    Using config: /root/zookeeper/zookeeper-1/bin/../conf/zoo.cfg
    Mode: follower
    ZooKeeper JMX enabled by default
    Using config: /root/zookeeper/zookeeper-2/bin/../conf/zoo.cfg
    Mode: leader
    ZooKeeper JMX enabled by default
    Using config: /root/zookeeper/zookeeper-3/bin/../conf/zoo.cfg
    Mode: follower

    四、集群模式

      与伪集群模式类似,区别是部署在不同机器。

    五、基本操作

      连接zk。执行bin目录下的zkCli.sh。由于部署时ip已不是默认ip 2181,需要指定ip port

    ./zkCli.sh -server 127.0.0.1:12181 
    [zk: 127.0.0.1:12181(CONNECTED) 5] ls /    
    [zookeeper]
    [zk: 127.0.0.1:12181(CONNECTED) 6] create /test test
    Created /test
    [zk: 127.0.0.1:12181(CONNECTED) 7] ls / 
    [zookeeper, test]
    [zk: 127.0.0.1:12181(CONNECTED) 8] get /test
    test
    cZxid = 0x400000006
    ctime = Mon Apr 06 22:01:48 CST 2020
    mZxid = 0x400000006
    mtime = Mon Apr 06 22:01:48 CST 2020
    pZxid = 0x400000006
    cversion = 0
    dataVersion = 0
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 4
    numChildren = 0
    [zk: 127.0.0.1:12181(CONNECTED) 9] delete /test
    [zk: 127.0.0.1:12181(CONNECTED) 10] ls /    
    [zookeeper]
    [zk: 127.0.0.1:12181(CONNECTED) 11] get /test
    Node does not exist: /test
    [zk: 127.0.0.1:12181(CONNECTED) 12] quit
    Quitting...

     六、字段含义

    cZxid
      创建此znode的zxid

    ctime
      创建此znode的时间。
    mZxid
      最后修改此znode的zxid。
    mtime
      最后一次修改此znode的时间。

    pZxid

      最后一次修改子节点的zxid。

    cversion
      此znode的子节点的更改次数。(实际操作发现是创建/删除一级子节点)
    dataVersion
      此znode的数据更改的次数。
    aclVersion
      更改此znode的ACL的次数。
    ephemeralOwner
      如果znode是临时节点,则此znode所有者的会话id。如果它不是一个临时节点,则为零。
    dataLength
      此znode的数据字段的长度。
    numChildren
      这个znode的子节点的数目。

      

    参考链接:

      http://zookeeper.apache.org/doc/r3.3.3/zookeeperProgrammers.html

  • 相关阅读:
    SDSF output to PS
    3亿人出走后的中国农村,路在何方?
    oracle function
    C8051特点
    c8051单片机注意事项:
    一个因xdata声明引起的隐含错误
    宏 函数 内联函数inline
    字符串与液晶显示的一个问题
    XON/OFF
    excel之实验数据处理线性拟合
  • 原文地址:https://www.cnblogs.com/chinxi/p/12649964.html
Copyright © 2011-2022 走看看