Zookeeper集群搭建(配置详解)
2017-03-12 19:32
441 查看
软件环境准备:
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 enviroment export JAVA_HOME=/usr/local/program/jdk1.7.0_79 export ZK_HOME=/usr/local/program/zk/zookeeper-3.4.6 export PATH=$JAVA_HOME/bin:$ZK_HOME/bin:$PATH
java -version 命令测试是否成功配置jdk
[root@localhost ~]# java -version java 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 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/program/zk/zkdata dataLogDir=/usr/local/program/zk/zkdataLog # the port at which the clients will connect clientPort=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=1 server.1=192.168.0.102:12888:13888 server.2=192.168.0.103:12888:13888 server.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 #本台机器的端口,默认为2181 clientPort=12181 log4j.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
相关文章推荐
- ZooKeeper配置详解与集群搭建
- zookeeper集群基本配置详解
- Kafka 0.9+Zookeeper3.4.6集群搭建、配置,新Client API的使用要点,高可用性测试,以及各种坑 (转载)
- HDFS集群搭建,高可用双机热备模式(HA)自动切换,hdfs+zookeeper+journalnode,步骤分步原理详解(适合初学者)
- Zookeeper集群搭建和配置
- Hadoop详解(五)——ZooKeeper详解,ZooKeeper伪分布搭建和集群搭建,Hadoop集群搭建,sqoop工具的使用
- ZooKeeper集群搭建实例,以及集成dubbo时的配置
- HUE配置文件hue.ini 的zookeeper模块详解(图文详解)(分HA集群)
- Redis主从复制和集群搭建配置详解
- Zookeeper系列(二)安装配置与集群搭建
- linux搭建LVS+keepalive+nginx实现集群高性能负载均衡配置详解
- Kafka 0.9+Zookeeper3.4.6集群搭建、配置,新Client API的使用要点,高可用性测试,以及各种坑
- Zookeeper的安装部署,zookeeper参数配置说明,集群搭建,查看集群状态
- zookeeper集群搭建与配置
- zookeeper安装,配置,搭建集群
- 轻松搭建hadoop-1.2.1集群(4)--配置Zookeeper集群
- Kafka 0.10.0.+zookeeper3.4.8集群搭建、配置,新Client API介绍
- zookeeper集群的搭建以及hadoop ha的相关配置
- 【集群搭建】Zookeeper集群环境配置
- zookeeper集群配置及搭建