zoukankan      html  css  js  c++  java
  • ZooKeeper安装笔记

    ZookKeeper 是Apache的顶级项目之一,我们可用它来做配置管理集群管理消息队列等。

    安装相对简单,同样有单机和分布式俩种安装模式,单机少一些配置,本文给出安装方法和一些常用管理命令等。

    环境要求

    1. linux 或者 windows(生产环境最好不用)

    2. jdk1.6 以上

    设置Java heap 大小。避免内存与磁盘空间的交换,能够大大提升ZK的性能,设置合理的heap大小则能有效避免此类空间交换的触发。在正式发布上线之前,建议是针对使用场景进行一些压力测试,确保正常运行后内存的使用不会触发此类交换。通常在一个物理内存为4G的机器上,最多设置-Xmx为3G。

    1. 下载ZK,http://zookeeper.apache.org/releases.html
      并解压到usr/local/zookeeper
    2. 三台虚拟机:
      server.1=zoo1:2888:3888
      server.2=zoo2:2888:3888
      server.3=zoo3:2888:3888

    Zookeeper配置

    编辑配置文件,在conf目录:

    move ./zoo_sample.cfg ./zoo.cfg
    vim zoo.cfg
    

    内容如下:

    tickTime=2000
    dataDir=/var/lib/zookeeper/data
    clientPort=2181
    initLimit=5
    syncLimit=2
    
    ##单机不需要以下配置
    server.1=zoo1:2888:3888
    server.2=zoo2:2888:3888
    server.3=zoo3:2888:3888
    

    设置Myid,单机不需要

    server.id=host:port:port 的格式,server固定,后面的数字是此服务器在集群中的序号[1~255],并需要data目录下创建文件myid来存储当前server的id。

    设置服务器id:

    echo 1 >> /var/lib/zookeeper/data/myid
    

    其他俩台分别执行:

    echo 2 >> /var/lib/zookeeper/data/myid
    和
    echo 3 >> /var/lib/zookeeper/data/myid
    

    启动ZK

    cd /usr/local/zookeeper/bin
    ./zkServer.sh start (windows下是zkServer.cmd)
    

    查看启动状态:

    ./zkServer.sh status
    

    通过ZK客户端连接ZK

    ./zkCli.sh 或者 ./zkCli.sh -server 127.0.0.1:2181
    

    需要注意的是在集群模式下,ZK不能像Hadoop那样只需要在master下执行启动命令Hadoop自动启动slaves,ZK需要手动去启动每个节点!

    至此,ZK安装配置结束!

    Zookeeper配置参数说明

    1. tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,单位毫秒。

    2. dataDir:是 Zookeeper 保存数据和日志的目录。

    3. clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口。

    4. initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒

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

    6. server.id=host:port1:port2:其中 id 是一个数字,表示这个是第几号服务器;
      host 是这个服务器的 ip 地址;
      port1 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;
      port2 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

    JMX远程支持

    Zookeeper默认开启JMX,只限本地连接,远程连接需要修改启动脚本

    打开 ./bin/zkServer.sh 找到:

    ZOOMAIN="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=$JMXLOCALONLY org.apache.zookeeper.server.quorum.QuorumPeerMain"

    加入启动参数:

    -Dcom. sun.management.jmxremote.port=5000 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

    如:

    ZOOMAIN="-Dcom. sun.management.jmxremote.port=5000 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false org.apache.zookeeper.server.quorum.QuorumPeerMain"

    Zookeeper四字命令

    ZK服务提供了下列命令让管事员来测试服务的运行情况。

    1. stat: 查看ZK结点follower或leader情况。
    2. srst: 重置通过stat查看的统计结果信息。
    3. ruok: 测试Server,若回复imok表示已经启动。
    4. dump: 列出未经处理的会话和临时节点。
    5. kill: 关掉server, 必须在ZK服务运行的机器上执行。
    6. conf: 输出相关服务配置的详细信息。
    7. cons: 列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息。
    8. crst: 重置 connection/session 所有连接的统计信息。
    9. envi: 输出关于服务环境的详细信息。
    10. reqs: 列出未经处理的请求。
    11. wchs: 列出服务器 watch 的详细信息。
    12. wchc: 通过 session 列出服务器 watch 的详细信息,它的输出是一个与 watch 相关的会话的列表。
    13. wchp: 通过路径列出服务器 watch 的详细信息。它输出一个与 session 相关的路径。
    14. srvr: 列出服务的详细信息。
    15. mntr: 打印所有可以用来监控集群服务健康状态信息的变量。

    用法:
    linux: echo mntr|nc 127.0.0.1 2181

    zk_version  3.4.0
    zk_avg_latency  0
    zk_max_latency  0
    zk_min_latency  0
    zk_packets_received 70
    zk_packets_sent 69
    zk_outstanding_requests 0
    zk_server_state leader
    zk_znode_count   4
    zk_watch_count  0
    zk_ephemerals_count 0
    zk_approximate_data_size    27
    zk_followers    4                   - only exposed by the Leader
    zk_synced_followers 4               - only exposed by the Leader
    zk_pending_syncs    0               - only exposed by the Leader
    zk_open_file_descriptor_count 23    - only available on Unix platforms
    zk_max_file_descriptor_count 1024   - only available on Unix platforms
    

    windows: telnet 127.0.0.1 2181 然后输入:stat等四字命令。

    更多ZK管理内容请参考:http://zookeeper.apache.org/doc/trunk/zookeeperAdmin.html

    Zookeeper客户端常用命令

    进入zkCli后敲入help,或者随便敲几个字符ZK会打印出如下信息:

    get path [watch]
    ls path [watch]
    set path data [version]
    rmr path
    delquota [-n|-b] path
    quit 
    printwatches on|off
    create [-s] [-e] path data acl
    stat path [watch]
    close 
    ls2 path [watch]
    history 
    listquota path
    setAcl path acl
    getAcl path
    sync path
    redo cmdno
    addauth scheme auth
    delete path [version]
    setquota -n|-b val path
    

    注:path 要以 / 打头;使用监听如:get /t watch

    参考网址

    http://zookeeper.apache.org/doc/trunk/zookeeperStarted.html
    http://zookeeper.apache.org/doc/trunk/zookeeperAdmin.html
    http://www.cnblogs.com/haippy/archive/2012/07/19/2599989.html

  • 相关阅读:
    松软科技web课堂:SQLServer之ROUND() 函数
    松软科技web课堂:SQLServer之LEN() 函数
    接口工具比较
    记录EXCEL格式和TXT文本格式之间的互转
    Fiddler安装证书
    Nginx概述及安装配置
    YSLOW(一款实用的网站性能检测工具)
    通用测试用例大全
    Macaca环境配置及样例执行
    ADB命令
  • 原文地址:https://www.cnblogs.com/xguo/p/3086143.html
Copyright © 2011-2022 走看看