原文连接:https://www.cnblogs.com/skyl/p/4854553.html

ZooKeeper参数调优

 

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

最新文章

  1. 7.1数据注解属性--Key【Code-First系列】
  2. postgreSQL时间、日期函数
  3. 推荐一款 chrome SSH 插件 - Secure Shell
  4. word域1
  5. [uwsgi] no request plugin is loaded, you will not be able to manage requests.
  6. Hadoop格式化HDFS报错java.net.UnknownHostException: localhost.localdomain: localhost.localdomain
  7. GetWindowRect() GetClientRect() ScreenToClient() MoveWindow()
  8. javascript调用外部wpf的方法
  9. Yii2 国际化的问题 zh-CN
  10. JDBC连接数据库和释放连接
  11. cxgrid学习
  12. Maven学习第4期---Maven简单使用
  13. selenium java 文件上传、下载
  14. C# Chart使用总结 2 ---------chart悬停选定数值操作
  15. 大数据开发实战:Hive优化实战1-数据倾斜及join无关的优化
  16. js之作用域
  17. LDA和PCA区别
  18. 一个小动画,颠覆你的CSS世界观
  19. python反序列化研究学习
  20. kotlin 记录(已弃坑)

热门文章

  1. UNITY技巧-查找脚本被哪个场景引用
  2. fastdfs 清晰简介 有用
  3. 安装运行okvis odometry
  4. [C++] static member variable and static const member variable
  5. [C++] CONST 2
  6. Python创建单例模式的5种常用方法-乾颐堂
  7. [Training Video - 6] [File Reading] [Java] Create and Write Excel File Using Apache POI API
  8. EF配置文件初始化数据库 codefirst
  9. HUST软测1504班第2周作业成绩:WordCount
  10. Selenium运用-漫画批量下载