文档章节

ZooKeeper参数调优

郑加威
 郑加威
发布于 2017/09/11 17:18
字数 726
阅读 25
收藏 3

zookeeper的默认配置文件为zookeeper/conf/zoo_sample.cfg,需要将其修改为zoo.cfg。

其中各配置项的含义,解释如下:

1. tickTime:Client-Server通信心跳时间
Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。
tickTime=2000

2. initLimit:Leader-Follower初始通信时限
集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。
initLimit=5

3. syncLimit:Leader-Follower同步通信时限
集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。
syncLimit=2

4. dataDir:数据文件目录
Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里。
dataDir=/home/michael/opt/zookeeper/data

5. clientPort:客户端连接端口
客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
clientPort=2181

6. 服务器名称与地址:集群信息(服务器编号,服务器地址,LF通信端口,选举端口)
这个配置项的书写格式比较特殊,规则如下:
server.N=YYY:A:B

server.1=itcast05:2888:3888
server.2=itcast06:2888:3888
server.3=itcast07:2888:3888

7. ZK为什么设置为奇数个?
zookeeper有这样一个特性:集群中只要有过半的机器是正常工作的,那么整个集群对外就是可用的。也就是说如果有2个zookeeper,那么只要有1个死了zookeeper就不能用了,因为1没有过半,所以2个zookeeper的死亡容忍度为0;同理,要是有3个zookeeper,一个死了,还剩下2个正常的,过半了,所以3个zookeeper的容忍度为1;同理你多列举几个:2 -> 0; 3 -> 1; 4 - >1; 5 -> 2; 6 -> 2会发现一个规律,2n和2n-1的容忍度是一样的,都是n-1,所以为了更加高效,何必增加那一个不必要的zookeeper呢。

8. ZK集群安装

1). 上传zk安装包

2). 解压

3). 配置(先在一台节点上配置)
    3.1) 将文件/conf/zoo_sample.cfg改为/conf/zoo.cfg
        mv zoo_sample.cfg zoo.cfg
    
    3.2) 修改配置文件(zoo.cfg)
        dataDir=/hadoop/zookeeper-3.4.5/tmp
        
        server.1=hadoop04:2888:3888
        server.2=hadoop05:2888:3888
        server.3=hadoop06:2888:3888
    
    3.3) 在(dataDir=/hadoop/zookeeper-3.4.5/tmp)创建一个myid文件,里面内容是server.N中的N(server.2里面内容为2)
        echo "1" > myid
    
    3.4) 将配置好的zk拷贝到其他节点 
        scp -r /hadoop/zookeeper-3.4.5/ hadoop05:/hadoop/
        scp -r /hadoop/zookeeper-3.4.5/ hadoop06:/hadoop/
    
    3.5 注意:在其他节点上一定要修改myid的内容
        在hadoop05应该讲myid的内容改为2 (echo "2" > myid)
        在hadoop06应该讲myid的内容改为3 (echo "3" > myid)
        
4). 启动集群
    分别启动zk
        ./zkServer.sh start

© 著作权归作者所有

共有 人打赏支持
郑加威
粉丝 105
博文 333
码字总数 626636
作品 0
杭州
架构师
ZooKeeper Java例子(四)

A Simple Watch Client 为了向你介绍ZooKeeper Java API,我们开发了一个非常简单的监视器客户端。ZooKeeper客户端监视一个ZooKeeper节点的改变并且通过开始和停止一个程序来作出响应。 必备条...

chenkangyao
08/02
0
0
【Zookeeper系列三】ZooKeeper Java API使用

Zookeeper系列 【Zookeeper系列一】Zookeeper应用介绍与安装部署 【Zookeeper系列二】ZooKeeper典型应用场景实践 【Zookeeper系列三】ZooKeeper Java API使用 【Zookeeper系列四】ZooKeeper...

陶邦仁
2015/11/18
0
2
Java之品优购部署_day01(3)

2.2 搭建 Zookeeper 集群 2.2.1 搭建要求 真实的集群是需要部署在不同的服务器上的,但是在我们测试时同时启动十几个虚拟机 内存会吃不消,所以我们通常会搭建伪集群,也就是把所有的服务都搭...

我是小谷粒
07/06
0
0
ZooKeeper 的安装 以及配置说明

Zookeeper的安装和配置十分简单, 既可以配置成单机模式, 也可以配置成集群模式. 下面将分别进行介绍. 单机模式 下载zookeeper的安装包之后(http://mirror.bit.edu.cn/apache/zookeeper/),...

Edwyn王
2015/04/13
0
0
zookeeper java客户端使用

ZooKeeper是一个优秀的分布式协同工具,很多分布式项目都基于它进行架构设计,不过要想要对其有一个深入的理解(如果你想阅读其源代码),对其客户端API的熟悉必不可少。下面就简要记录一下Z...

我就是我110
2015/08/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

精通Spring Boot——第十二篇:分页查询功能的实现

本文将介绍如何实现分页查询功能,推荐使用github的pagehelper插件实现(事实上大家基本都是这么干的),但本文的实现方式和大多数不同,废话少说,现在就带着大家看看区别在哪里。 先看pom...

developlee的潇洒人生
8分钟前
0
0
平淡的秋招之路

1. 概述 在八月中旬之前,我还没有秋招这个概念,认为找工作就是通过学校举办的招聘会。后来慢慢的了解到,由于学校实力的问题,许多好的公司只会去门当户对的学校进行招聘。我们学校只是一个...

firepation
11分钟前
0
0
设置布局中的子控件不可用

RelativeLayout R2 = findViewById(R.id.act_menu_level2_rl); //设置当前R2中的子控件不可用 int childCount = R2.getChildCount(); ......

lanyu96
22分钟前
0
0
分布式系统中处理参数配置的 4 种方案

一个系统中包含有各种各样的配置信息,如一个日志文件需要配置以下几个信息。 日志文件生成主目录 日志文件名称,不同的日志级别对应不同的文件 当前日志级别 还有其他各种业务参数、系统参数...

Java技术栈
23分钟前
1
0
MongoDB的使用学习之(七)MongoDB的聚合查询(两种方式)附项目源码

MongoDB的使用学习之(七)MongoDB的聚合查询(两种方式)附项目源码 先来张在路上…… 铛铛铛……项目源码下载地址:http://files.cnblogs.com/ontheroad_lee/MongoDBDemo.rar 此项目是用M...

Airship
29分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部