【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..tar.gz
移动 # mv zookeeper-3.4. /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=
dataDir=/var/zookeeper/data
dataLogDir=/var/zookeeper/datalogs
clientPort=
autopurge.snapRetainCount=
autopurge.purgeInterval=

配置参数的含义:
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: #启动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

【转】最新版zookeeper配置看这一篇就够了的更多相关文章

  1. Symfony 服务配置 看这一篇就够了

    对于刚接触 Symfony 的新手来说,如何配置服务是一件很困难的事情.虽然在 Symfony 的新版本的框架中加入了自动加载(autowire),基本上满足了一般的需求,但是如果你想深入了解“服务” ...

  2. Android studio 3.0安装与配置(看这一篇就够了)

    前言 为了完成数据库大作业,并充分利用学过的Java语言,决定开发一个简单完整成熟的安卓手机应用程序.于是下载安装Android Studio集成开发环境,第一次安装最新版本,因为墙的原因安装失败,第 ...

  3. JVM内存模型你只要看这一篇就够了

    JVM内存模型你只要看这一篇就够了 我是一只孤傲的鱼鹰 让我们不厌其烦的从内存模型开始说起:作为一般人需要了解到的,JVM的内存区域可以被分为:线程栈,堆,静态方法区(实际上还有更多功能的区域,并且这 ...

  4. 【java编程】ServiceLoader使用看这一篇就够了

    转载:https://www.jianshu.com/p/7601ba434ff4 想必大家多多少少听过spi,具体的解释我就不多说了.但是它具体是怎么实现的呢?它的原理是什么呢?下面我就围绕这两个问 ...

  5. [转帖]nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件

    nginx学习,看这一篇就够了:下载.安装.使用:正向代理.反向代理.负载均衡.常用命令和配置文件 2019-10-09 15:53:47 冯insist 阅读数 7285 文章标签: nginx学习 ...

  6. 什么是 DevOps?看这一篇就够了!

    本文作者:Daniel Hu 个人主页:https://www.danielhu.cn/ 目录 一.前因 二.记忆 三.他们说-- 3.1.Atlassian 回答"什么是 DevOps?& ...

  7. 关于 Docker 镜像的操作,看完这篇就够啦 !(下)

    紧接着上篇<关于 Docker 镜像的操作,看完这篇就够啦 !(上)>,奉上下篇 !!! 镜像作为 Docker 三大核心概念中最重要的一个关键词,它有很多操作,是您想学习容器技术不得不掌 ...

  8. Java中的多线程=你只要看这一篇就够了

    如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现.说这个话其 ...

  9. 2019-5-25-win10-uwp-win2d-入门-看这一篇就够了

    title author date CreateTime categories win10 uwp win2d 入门 看这一篇就够了 lindexi 2019-5-25 20:0:52 +0800 2 ...

随机推荐

  1. JavaScript入门学习之二——函数

    在前一章中讲了JavaScript的入门语法,在这一章要看看函数的使用. 函数的定义 JavaScript中的函数和Python中的非常类似,只不过定义的方式有些不同,下面看看是怎么定义的 //定义普 ...

  2. (五) 结构化查询语言SQL——3

    4. 数据更新 1)增 对应INSERT语句.格式为INSERT INTO T[(A1,…,Ak)]  VALUES (C1,…,Ck),其中A代表表T的属性,C代表常量,A可以缺省,此时C必须严格按 ...

  3. (十一)zabbix监控mysql

    1)配置脚本获取mysql的各种参数 注意:脚本中定义host #vim /etc/zabbix/zabbix_agentd.d/mysql_status.sh #!/bin/bash MySQlBi ...

  4. curses is not supported on this machine:(curses 在pycharm(Windows)中的安装 )

    curse在Windows下的pycharm中安装,curse是不能直接在Windows下跑的.需要安装相关环境,要根据直接project的编译器版本来选择下载相关的whl. 找到project的Sc ...

  5. puppet完全攻略(二)让puppet代码支持vim高亮显示

    puppet完全攻略(二)让puppet代码支持vim高亮显示 2012-06-10 13:33:01 标签:puppet viong puppet完全攻略 原创作品,允许转载,转载时请务必以超链接形 ...

  6. 11步教你选择最稳定的MySQL版本

    11步教你选择最稳定的MySQL版本 来源:CSDN 作者:网络 发表于:2012-07-18 08:36 点击: MySQL开源数据库有多个重要分支,目前拥有的分支分别为:MySQL Cluster ...

  7. PHP类的设计模式

    单例模式 <?php class mysingle { private static $myinstance =null; private function __construct() { } ...

  8. 制作中文字符集zh_CN.utf8的centos7系统

    以下是Dockerfile文件 ===================================== FROM centos:7ENV LANG=zh_CN.UTF-8 \ LANGUAGE=z ...

  9. 32位linux安装chrome浏览器

    首先你需要一个安装包,可以在CSDN上搜索google-chrome-stable_current_i386.deb. 然后在终端输入 sudo apt-get install gdebi 然后找到安 ...

  10. jQuery文档操作之修改操作

    replaceWith() 语法: $(selector).replaceWith(content); 将所有匹配的元素替换成指定的string.js对象.jQuery对象. // 将所有的h5标题替 ...