• 【转】最新版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

  • 相关阅读:
    Java中的String,StringBuilder,StringBuffer三者的区别
    安装ik分词器以及版本和ES版本的兼容性
    利用logstash从mysql同步数据到ElasticSearch
    安装logstash和logstash-input-jdbc
    mac 下安装ES 与 Head插件 以及安装Kibana
    数据库备份出现警告:Warning: Using a password on the command line interface can be insecure. Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even thos
    Mybatis 中$与#的区别
    spring boot Tomcat访问日志
    spring boot配置druid数据源和监控配置
    kafka基本概念
  • 原文地址:https://www.cnblogs.com/pekkle/p/11445606.html
Copyright © 2020-2023  润新知