zoukankan      html  css  js  c++  java
  • 【转】最新版zookeeper配置看这一篇就够了

    【From】https://blog.csdn.net/yydriver/article/details/81107954

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/yydriver/article/details/81107954


    zookeeper

    下载
    download http://mirror.bit.edu.cn/apache/zookeeper/stable/zookeeper-3.4.12.tar.gz
    
    安装
    解压
    
    # tar -zxf zookeeper-3.4.12.tar.gz
    移动
    
    # mv zookeeper-3.4.6 /usr/local/zookeeper

    配置

    #进入zookeeper目录
    cd /usr/local/zookeeper/
    #新建日志文件夹
    $ mkdir -p /var/zookeeper/data 
    $ mkdir -p /var/zookeeper/datalogs
    $ mkdir -p /var/zookeeper/logs
    准备配置文件
    $ cd /conf
    $ mp zoo_sample.cfg zoo.cfg
    $ vi /conf/zoo.cfg


    我的配置:

    tickTime=2000
    dataDir=/var/zookeeper/data
    dataLogDir=/var/zookeeper/datalogs
    clientPort=2181
    autopurge.snapRetainCount=10
    autopurge.purgeInterval=48

    配置参数的含义:
    ClientPort:zk服务器监听的端口,客户端通过该端口建立连接,每台zk服务器也允许设置为不同的值。默认配置文件设定的是2181,除非你有什么难言之隐否则不需要修改
    dataDir:zk用于保存内存数据库的快照的目录,除非设置了dataLogDir,否则这个目录也用来保存更新数据库的事务日志。在生产环境使用的zk集群,强烈建议设置dataLogDir,让dataDir只存放快照,因为写快照的开销很低,这样dataDir就可以和其他日志目录的挂载点放在一起。
    dataLogDir: zk的事务日志路径
    tickTime:前面已提到过,zk使用的基本时间单位是tick,这个参数用于配置一个tick的长度,单位为毫秒,默认配置文件设定的是3000,除非你有什么难言之隐否则不需要修改
    autopurge.snapRetainCount:3.4.0及之后版本zk提供了自动清理快照文件和事务日志文件的功能,该参数指定了保留文件的个数,默认为3,这里我设置为10.
    autopurge.purgeInterval:和上一个参数配合使用,设置自动清理的频率,单位为小时,默认为0表示不清理,建议设为6或12之类的值。这里我设置了48,意思是48小时自动清理一次。

    其他高级设置:

    配置日志
    关于zookeeper的日志:
    zookeeper有三种日志:快照日志,事务日志,log4j日志
    zoo.cfg中的dataDir是快照日志;datalogDir是事务日志;
    log4j配置了集群的服务器日志:该日志的配置地址在conf/目录下的log4j.properties文件中,该文件中有一个配置项为“zookeeper.log.dir=.”,表示log4j日志文件在与执行程序(zkServer.sh)在同一目录下。当执行zkServer.sh时,在该文件夹下会产生zookeeper.out日志文件。
    zookeeper默认将事务日志文件和快照日志文件都存储在dataDir对应的目录下。建议将事务日志(dataLogDir)与快照日志(dataLog)单独配置,因为当zookeeper集群进行频繁的数据读写操作是,会产生大量的事务日志信息,将两类日志分开存储会提高系统性能,而且,可以允许将两类日志存在在不同的存储介质上,利用磁盘顺序写的特性,提高日志写入速度。

    进入conf,修改log4j.properties

    $ vi conf/log4j.properties
    #将以下配置:
    zookeeper.root.logger=INFO, CONSOLE
    log4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppender
    #修改为:
    zookeeper.root.logger=INFO, ROLLINGFILE
    log4j.appender.ROLLINGFILE=org.apache.log4j.DailyRollingFileAppender

    进入 zookeeper/bin目录,修改zkEnv.sh

    $ vi /bin/zkEnv.sh
    ## 将以下配置:
    if [ "x${ZOO_LOG_DIR}" = "x" ]
    then
    ZOO_LOG_DIR="."
    fi
    
    if [ "x${ZOO_LOG4J_PROP}" = "x" ]
    then
    ZOO_LOG4J_PROP="INFO,CONSOLE"
    fi
    
    ## 修改为:
    if [ "x${ZOO_LOG_DIR}" = "x" ]
    then
    ZOO_LOG_DIR="/var/local/zookeeper/logs"
    fi
    
    if [ "x${ZOO_LOG4J_PROP}" = "x" ]
    then
    ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
    fi



    经过配置zoo.cfg,log4j.properties,zkEnv.sh后,我的zookeeper的几个日志目录如下:
    数据快照日志

    /zookeeper/data
    事务日志

    /zookeeper/datalogs
    服务器日志

    /zookeeper/logs


    配置集群(缺)

    运行zookeeper
    $ /usr/local/zookeeper/bin/zkServer.sh start
    # 遇到zookeeper_server.pid没有写权限,给这个目录加权限
    $ sudo chown :kfk:kfk /var/zookeeper/data
    使用zookeeper
    $ cd zookeeper/bin
    $ zookeeper-shell localhost:2181 #启动zookeeper-shell 
    zookeeper-shell 命令
    ZooKeeper -server host:port cmd args
    stat path [watch]
    set path data [version]
    ls path [watch] #查看
    delquota [-n|-b] path
    ls2 path [watch]
    setAcl path acl
    setquota -n|-b val path
    history 
    redo cmdno
    printwatches on|off
    delete path [version]
    sync path
    listquota path
    rmr path
    get path [watch] #获得路径下的内容
    create [-s] [-e] path data acl
    addauth scheme auth
    quit 
    getAcl path
    close 
    connect host:port
    为当前用户配置alias
    cd ~
    vi .bashrc
    # alias zookeeper_start='/usr/local/zookeeper/bin/zkServer.sh start'
    # alias zookeeper_stop='/usr/local/zookeeper/bin/zkServer.sh stop'
    source .bashrc


    ————————————————
    版权声明:本文为CSDN博主「肖邦也没谱」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/yydriver/article/details/81107954

  • 相关阅读:
    wex5 实战 框架拓展之2 事件派发与data刷新
    wex5 实战 框架拓展之1 公共data组件(Data)
    wex5 实战 HeidiSQL 导入Excel数据
    wex5 实战 手指触屏插件 hammer的集成与优劣
    wex5 实战 登陆帐号更换与用户id一致性
    wex5 实战 用户点评与提交设计技巧
    wex5 实战 省市县三级联动与地址薄同步
    wex5 实战 wex5与js的组件关系与执行顺序(父子与先后)
    wex5 实战 单页模式下的多页面数据同步
    [BZOJ]4237: 稻草人
  • 原文地址:https://www.cnblogs.com/pekkle/p/11445606.html
Copyright © 2011-2022 走看看