Zookeeper集群搭建(配置详解)
来源:互联网 发布:python语言是什么 编辑:程序博客网 时间:2024/05/09 23:51
软件环境准备:
- Linux服务器一台、三台、五台(2*n+1台);
- Java jdk 1.7;
- zookeeper 3.4.6版;
软件安装:
- 解压jdk、zookeeper文件到指定目录,执行命令tar -zvxf xxxx.tar.gz -C /usr/local/program
- 配置环境变量,vi /etc/profile
#set enviromentexport JAVA_HOME=/usr/local/program/jdk1.7.0_79export ZK_HOME=/usr/local/program/zk/zookeeper-3.4.6export PATH=$JAVA_HOME/bin:$ZK_HOME/bin:$PATH
- java -version 命令测试是否成功配置jdk
[root@localhost ~]# java -versionjava version "1.7.0_79"Java(TM) SE Runtime Environment (build 1.7.0_79-b15)Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
- 配置zookeeper;首先建立两个文件夹mkdir /usr/local/program/zk/zkdata ,mkdir /usr/local/program/zk/zkdataLog
- 然后执行命令cd /usr/local/program/zk/zookeeper-3.4.6/conf/ 进入配置文件目录,拷贝一份配置文件cp zoo_sample.cfg zoo.cfg改名为zoo.cfg
- 编辑配置文件修改配置(将端口改大的目的是为了防止冲突):
# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial # synchronization phase can takeinitLimit=10# The number of ticks that can pass between # sending a request and getting an acknowledgementsyncLimit=5# the directory where the snapshot is stored.# do not use /tmp for storage, /tmp here is just # example sakes.dataDir=/usr/local/program/zk/zkdatadataLogDir=/usr/local/program/zk/zkdataLog# the port at which the clients will connectclientPort=12181# 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=1server.1=192.168.0.102:12888:13888server.2=192.168.0.103:12888:13888server.3=192.168.0.104:12888:13888
- 进入zkdata目录,执行命令echo “1” > myid创建myid文件并输入值为1
- 依次在另外两台机器上执行同样的操作,myid的数值依次为2,3
- 配置成功,执行命令zkServer.sh start分别启动三台机器
- 执行命令zkServer.sh status查看对应的状态发现出现:zookeeper Error contacting service. It is probably not running错误
- 执行命令:tail -f zookeeper.out
查看到错误记录:
2016-04-21 06:56:56,242 [myid:1] – WARN [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Follower@89] – Exception when following the leader
java.net.NoRouteToHostException: No route to host
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at org.apache.zookeeper.server.quorum.Learner.connectToLeader(Learner.java:225)
at org.apache.zookeeper.server.quorum.Follower.followLeader(Follower.java:71)
at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:786) - 经验证:防火墙的问题,执行命令service iptables stop关闭防火墙(如要永久关闭防火墙执行命令:chkconfig iptables off)
- 重启机器,执行命令zkServer.sh status 分别查看每台机器的状态为leader、follower、follower则表明启动成功
配置说明:
作用:leader:从客户端接收读写请求,响应读写请求,向slaver发送数据slaver:从leader同步数据,当leader失败时,从新投票选举新的leader配置详解:myid:位于快照目录,是用来标识本台机器在集群中的唯一标识zoo.cfg:tickTime:是initLimit 和 syncLimit的时间单位(毫秒)initLimit:集群机器之间的同步时间,比如启动m1,s1在这个时间段内必须都起来syncLimit:leader与follower之间的通信时间(心跳),超时则说明follower失败#快照日志的存储路径dataDir=/usr/local/program/zk/zkdata#zk事物日志存储目录 (如果不配置zkdataLog那么快照日志和事务日志都将写到dataDir中,严重影响性能)dataLogDir=/usr/local/program/zk/zkdataLog# the port at which the clients will connect#本台机器的端口,默认为2181clientPort=12181log4j.properties:日志文件,zookeeper.out位置bin下面,可以更改注意:需要定期清理事务日志文件,否则会造成性能下降(crontab)crontab -l查看当前用户定时任务crontab -e编辑定时任务(例:0 0 * * 0 sh /usr/local/program/zk/cleanup.sh)另外2台机器执行同样的操作#server.1标识本台机器,通过myid文件指定id=1;ip:机器之间通信端口(默认为2888):leader选举端口(默认为3888)server.1=192.168.0.102:12888:13888
0 0
- Zookeeper集群搭建(配置详解)
- ZooKeeper配置详解与集群搭建
- zookeeper 集群搭建,及zoo.cfg配置详解
- zookeeper集群搭建与配置
- zookeeper安装,配置,搭建集群
- zookeeper集群配置及搭建
- Zookeeper集群搭建和配置
- 搭建Zookeeper(集群)
- zookeeper集群基本配置详解
- Zookeeper集群安装配置详解
- Zookeeper系列(二)安装配置与集群搭建
- zookeeper文档(1)----zookeeper集群搭建
- zookeeper(三)--- 搭建zookeeper集群
- zookeeper集群及mycat配置搭建
- Zookeeper日志配置以及集群搭建
- zookeeper集群(一、搭建集群)
- Zookeeper集群搭建(伪集群)
- Zookeeper集群搭建(solr集群架构 zookeeper部分)
- 表格排版
- Mybatis-Sqlsession/Builder/Factory
- css文本属性
- (51nod)1083
- java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 解决方案
- Zookeeper集群搭建(配置详解)
- (原创)我对未来的人类的发展,以及AI技术发展的一些思考。
- python基础之元组,列表
- Android中的width(height)与layout_width(layout_height)的区别
- 蓝桥杯 危险系数
- 逗号表达式
- nodejs+angular+mongodb实现论坛基本功能
- POJ3468_A Simple Problem with Integers_线段树区间修改区间查询
- struts2--4.拦截器