Zookeeper集群及配置
原理
ZooKeeper是以Fast Paxos算法为基础的,Paxos 算法存在活锁的问题,即当有多个proposer交错提交时,有可能互相排斥导致没有一个proposer能提交成功,而Fast Paxos作了一些优化,通过选举产生一个leader (领导者),只有leader才能提交proposer,具体算法可见Fast Paxos。因此,要想弄懂ZooKeeper首先得对Fast Paxos有所了解。
ZooKeeper的基本运转流程:
1、选举Leader。
2、同步数据。
3、选举Leader过程中算法有很多,但要达到的选举标准是一致的。
4、Leader要具有最高的执行ID,类似root权限。
5、集群中大多数的机器得到响应并follow选出的Leader。
本文将zookeeper在同一台服务器上做一个伪集群部署(实际生产环境不会这样部署),zookeeper有个特性就是节点一般是部署单数(3,5,7,9。。。)具体访问量来权衡,节点down掉一半才算zookeeper服务down掉。
1、下载地址
http://apache.fayea.com/zookeeper/
2、解压安装
1、使用cd命令进入/usr/local/application/zookeeper目录,并上传下载好的zookeeper-3.4.6.tar.gz至安装目录,分别解压移动至zookeeper2181、zookeeper2182、zookeeper2183。
tar -zxvf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 zookeeper2181 tar -zxvf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 zookeeper2182 tar -zxvf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 zookeeper2183 rm -rf zookeeper-3.4.6.tar.gz
3、修改配置
1、修改zookeeper2181/conf/zoo_sample.cfg文件名称为zoo.cfg,并修改红色配置:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/usr/local/application/zookeeper/zookeeper2181/data
dataLogDir=/usr/local/application/zookeeper/zookeeper2181/logs
# the port at which the clients will connect
clientPort=
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=192.168.1.11:4000:5000
server.2=192.168.1.11:4000:5000
server.3=192.168.1.11:4000:5000
2、修改zookeeper2182/conf/zoo_sample.cfg文件名称为zoo.cfg,并修改红色配置:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/usr/local/application/zookeeper/zookeeper2182/data
dataLogDir=/usr/local/application/zookeeper/zookeeper2182/logs
# the port at which the clients will connect
clientPort=
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=192.168.1.11:4000:5000
server.2=192.168.1.11:4000:5000
server.3=192.168.1.11:4000:5000
3、修改zookeeper2183/conf/zoo_sample.cfg文件名称为zoo.cfg,并修改红色配置:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/usr/local/application/zookeeper/zookeeper2181/data
dataLogDir=/usr/local/application/zookeeper/zookeeper2181/logs
# the port at which the clients will connect
clientPort=
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=192.168.1.11:4000:5000
server.2=192.168.1.11:4000:5000
server.3=192.168.1.11:4000:5000
4、修改zookeeper2181配置,依次执行下面命令
cd zookeeper2181
mkdir data logs
cd data
vi myid(首先输入字母i进入编辑模式,修改myid内容,这个与zoo.cfg文件里的server.对应(具体服务器是多少就输入多少))
5、修改zookeeper2182配置,依次执行下面命令
cd zookeeper2182
mkdir data logs
cd data
vi myid(首先输入字母i进入编辑模式,修改myid内容,这个与zoo.cfg文件里的server.对应(具体服务器是多少就输入多少))
6、修改zookeeper2183配置,依次执行下面命令
cd zookeeper2183
mkdir data logs
cd data
vi myid(首先输入字母i进入编辑模式,修改myid内容,这个与zoo.cfg文件里的server.对应(具体服务器是多少就输入多少))
4、启动服务
1、启动zookeeper2181服务,进入bin目录,输入命令:./zkServer.sh start
[root@localhost zookeeper2181]# cd bin
[root@localhost bin]# ./zkServer.sh start
JMX enabled by default
Using config: /usr/local/application/zookeeper/zookeeper2181/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@localhost bin]#
2、启动zookeeper2182服务,进入bin目录,输入命令:./zkServer.sh start
[root@localhost zookeeper2182]# cd bin
[root@localhost bin]# ./zkServer.sh start
JMX enabled by default
Using config: /usr/local/application/zookeeper/zookeeper2182/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@localhost bin]#
3、启动zookeeper2183服务,进入bin目录,输入命令:./zkServer.sh start
[root@localhost zookeeper2183]# cd bin
[root@localhost bin]# ./zkServer.sh start
JMX enabled by default
Using config: /usr/local/application/zookeeper/zookeeper2183/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@localhost bin]#
4、查看服务,进入bin目录使用命令:./zkServer.sh status,发现自动选举了leader。
[root@localhost bin]# ./zkServer.sh status
JMX enabled by default
Using config: /usr/local/application/zookeeper/zookeeper2183/bin/../conf/zoo.cfg
Mode: leader
[root@localhost bin]# cd /usr/local/application/zookeeper/zookeeper2181/bin
[root@localhost bin]# ./zkServer.sh status
JMX enabled by default
Using config: /usr/local/application/zookeeper/zookeeper2181/bin/../conf/zoo.cfg
Mode: follower
[root@localhost bin]# cd /usr/local/application/zookeeper/zookeeper2182/bin
[root@localhost bin]# ./zkServer.sh status
JMX enabled by default
Using config: /usr/local/application/zookeeper/zookeeper2182/bin/../conf/zoo.cfg
Mode: follower
5、常用命令
启动服务:./zkServer.sh start (需要进入bin目录)
停止服务:./zkServer.sh stop (需要进入bin目录)
重启服务:./zkServer.sh restart (需要进入bin目录)
查看状态:./zkServer.sh status (需要进入bin目录)
Zookeeper集群及配置的更多相关文章
- [推荐]Hadoop+HBase+Zookeeper集群的配置
[推荐]Hadoop+HBase+Zookeeper集群的配置 Hadoop+HBase+Zookeeper集群的配置 http://wenku.baidu.com/view/991258e881c ...
- 原创:centos7.1下 ZooKeeper 集群安装配置+Python实战范例
centos7.1下 ZooKeeper 集群安装配置+Python实战范例 下载:http://apache.fayea.com/zookeeper/zookeeper-3.4.9/zookeepe ...
- hbase和ZooKeeper集群安装配置
一:ZooKeeper集群安装配置 1:解压zookeeper-3.3.2.tar.gz并重命名为zookeeper. 2:进入~/zookeeper/conf目录: 拷贝zoo_sample.cfg ...
- Zookeeper 集群安装配置,超详细,速度收藏!
今天,栈长分享下 Zookeeper 的集群安装及配置. 下载 下载地址:http://zookeeper.apache.org/ 下载过程就不说了,我们下载了最新的zookeeper-3.4.11. ...
- Zookeeper 集群安装配置
今天,栈长分享下 Zookeeper 的集群安装及配置. 下载 下载地址:http://zookeeper.apache.org/ 下载过程就不说了,我们下载了最新的zookeeper-3.4.11. ...
- 【集群搭建】Zookeeper集群环境配置
1.下载解压安装文件 2.配置文件:conf/zoo.cfg tickTime=2000 dataDir=/usr/sunny/logs/zookeeper/data dataLogDir=/usr/ ...
- zookeeper 集群相关配置实践
一,zookeeper 集群下载及配置 1.1, 准备三台服务器node1,node2,node3. 1.2, [root@liunx local]#yum install -y java #安装ja ...
- 8.3.ZooKeeper集群安装配置
1.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式. 单机模式:Zookeeper只运行在一台服务器上,适合测试环境: 伪集群模式:就是在一台物理机上 ...
- zookeeper集群管理配置优化总结
1:默认jvm没有配置Xmx.Xms等信息,可以在conf目录下创建java.env文件 export JVMFLAGS="-Xms512m -Xmx512m $JVMFLAGS" ...
随机推荐
- CentOS7下载与安装错误全记录
这篇文章记录安装CentOS7过程错误全记录,供大家和自己参考 起因:笔记本用的win10系统,开启热点的时候,总是10分钟就自动关闭.于是折腾linux系统,平时用win10系统,也切换到linux ...
- zookeeper核心知识与投票机制详解
Zookeeper数据模型与session机制:zookeeper的数据模型有点类似于文件夹的树状结构,每一个节点都叫做znode,每一个节点都可以有子节点和数据,就好像文件夹下面可以有文件和子文件夹 ...
- oracle常用函数(2)
1) trunc函数,用于截断数字, 截断数字,用法为:trunc(n1,n2),n1表示要被截断的数字,n2表示要截断到那位,但是不会进行四舍五入. n2还可以表示负数,表示截断到小数点前,意思就是 ...
- java复习(2)
1.函数的重载:在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不相同就可以. 重载与返回值类型无关,只看参数列表.重载方便阅读,优化了程序的设计 eg://返回两个 整数值的 ...
- JavaScript concat() 方法
昨天接触了一个项目,我的tbody变量是一个数组,然后数据返回的是数组里面包含对象,我刚开始没看懂这个concat的作用,然后百度一下javascript中的用法,以此记录concat的方法: dat ...
- echarts 给legend图例加个标题式文字设置为普通文本不可点击
legend: [ { orient: "horizontal", // 'vertical' x: "68%", // 'center' | 'left' | ...
- python 服务器 cpu 监控程序--转
后台 py 代码 app.py ''' 服务器cpu监控程序 思路:后端后台线程一旦产生数据,即刻推送至前端. 好处:不需要前端ajax定时查询,节省服务器资源. 作者:hhh5460 时间:2017 ...
- 程序员称为高手的10条心得(摘自http://www.jizhuomi.com/software/394.html)
在这个世界上,有数百万的人热衷于软件开发,他们有很多名字,如:软件工程师(Software Engineer),程序员(Programmer),编码人(Coder),开发人员(Developer).经 ...
- 什么是file_sort?如何避免file_sort
阿里巴巴编码规范有这么一例 [推荐]如果有order by场景,请注意利用索引的有序性. order by最后的字段是组合索引的一部分,并且放在索引组合顺序的最后,避免出现file_sort的情况,影 ...
- 数据结构之查找(图片来源,老师PPT)
顺序查找进行遍历元素,进行查找 总计全部比较次数为:1+2+…+n = (1+n)n/2 若求某一个元素的平均查找次数,还应当除以n(等概率), 即: ASL=(1+n)/2 ,时间效率为 O(n) ...