原创转载请注明出处:http://agilestyle.iteye.com/blog/2290649
Zookeeper介绍
Zookeeper是Hadoop下的一个子项目,它是一个针对大型分布式系统的可靠的协调系统,提供的功能包括配置维护、名字服务、分布式同步、组服务等。ZooKeeper是可以集群复制的,集群间通过Zab(Zookeeper Atomic Broadcast)协议来保持数据的一致性。该协议看起来像是Paxos协议的某种变形,该协议包括两个阶段:leader election阶段和Atomic broadcas阶段。集群中将选举出一个leader,其他的机器则称为follower,所有的写操作都被传送给leader,并通过broadcas将所有的更新告诉follower。当leader崩溃或者leader失去大多数follower时,需要重新选举出一个新的leader,让所有的服务器都恢复到一个正确的状态。当leader被选举出来,且大多数服务器完成了和leader的状态同步后,leader election的过程就结束了,将进入Atomic broadcas的过程。Atomic broadcas同步leader和follower之间的信息,保证leader和follower具有相同的系统状态。
Zookeeper的核心其实类似一个精简的文件系统,提供一些简单的操作和一些附件的抽象(例如:znode的排序与watch),并且集群的部署方式使其具有较高的可靠性。Zookeeper的协作过程简化了松散耦合系统之间的交互,即使参与者彼此不知道对方的存在,也能够相互发现并且完成交互。
集群搭建
配置ZOOKEEPER_HOME
sudo vi /etc/profile
export ZOOKEEPER_HOME=/home/hadoop/app/zookeeper-3.4.8 export PATH=$PATH:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:${ZOOKEEPER_HOME}/bin
配置之后,记得source /etc/profile
创建两个文件夹zkdata和zkdatalog
mkdir zkdata mkdir zkdatalog
配置zoo.cfg
cd conf cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
修改dataDir,添加dataLogDir,修改clientPort,防止端口已被占用(默认端口号前面加1,比如2181 > 12181, 2888:3888 > 12888:13888)
# 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=/home/hadoop/app/zookeeper-3.4.8/zkdata dataLogDir=/home/hadoop/app/zookeeper-3.4.8/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.0=hadoop-0000:12888:13888 server.1=hadoop-0001:12888:13888 server.2=hadoop-0002:12888:13888
机器标识写入快照文件
cd zkdata ls echo 0 > myid ls cat myid
配置完hadoop-0000上的ZooKeeper之后,scp到hadoop-0001和hadoop-0002
scp -r /home/hadoop/app/zookeeper-3.4.8/ hadoop-0001:/home/hadoop/app/zookeeper-3.4.8 scp -r /home/hadoop/app/zookeeper-3.4.8/ hadoop-0002:/home/hadoop/app/zookeeper-3.4.8
scp之后,需要修改每个Server的机器标识
最后分别启动三台Server上的zookeeper
zkServer.sh start
查看Server状态
zkServer.sh status
查看目录情况
zkCli.sh -server-port 12181
jps查看进程
修改zookeeper默认的日志zookeeper.out以及日志文件位置
修改conf目录下的log4j.properties
zookeeper.root.logger=INFO, ROLLINGFILE
修改bin目录下的zkEnv.sh
ZOO_LOG_DIR="/home/hadoop/app/zookeeper-3.4.8/zkdatalog" ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
重新启动zookeeper后,输出的日志文件就在自定义的zkdatalog目录下了
设置定时清理日志和快照
http://zookeeper.apache.org/doc/trunk/zookeeperAdmin.html#Ongoing+Data+Directory+Cleanup
Reference
大型分布式网站架构设计与实践 陈康贤 著
相关推荐
Zookeeper集群搭建是一个重要的任务,尤其在分布式系统中,它作为协调服务,为高可用性和数据一致性提供了基础。Zookeeper是Apache的一个开源项目,用于处理分布式应用中的命名服务、配置管理、集群同步、选举等功能...
【Zookeeper集群搭建详解】 Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和性能高效、...
此附件是快速搭建zookeeper集群的脚本,方便灵活,减少了自己一大堆复杂的操作,像运行服务一样执行几条start,stop等命令即可轻松完成集群搭建。
【Kafka和Zookeeper集群搭建】是IT领域中常见的分布式系统构建过程,主要涉及两个核心组件:Apache Kafka和Apache ZooKeeper。Kafka是一款高吞吐量的分布式消息系统,而ZooKeeper则是一个分布式服务框架,常用于...
Zookeeper集群搭建手册配置指导 Apache ZooKeeper是一个分布式协调服务,广泛应用于分布式系统,如大数据处理、服务治理、配置管理等。它提供了一种简单、高效且可靠的分布式数据一致性解决方案。在搭建Zookeeper...
centos7下Redis哨兵集群和kafka集群和zookeeper集群搭建 http://blog.csdn.net/gaowenhui2008/article/details/71516901 https://cwiki.apache.org/confluence/display/KAFKA/Clients
linux下zookeeper集群环境搭建详细图文教程,简单易使用
详细介绍了Zookerper注册中心集群搭建的准备工作以及搭建的详细步骤,并且模拟了集群的一些常见异常,可以使学习Zookeeper的同志们通过阅读本篇文档,能够快速上手对Zookeeper的搭建使用
在Windows环境下搭建Zookeeper集群是一项基础且重要的任务,特别是在分布式系统和大数据领域。Zookeeper作为一个高可用的分布式协调服务,广泛应用于配置管理、命名服务、分布式锁和集群管理等场景。下面将详细介绍...
zookeeper Linux 集群搭建流程 ZooKeeper 是一个广泛使用的分布式协调服务,主要用于管理和协调分布式系统中的各个节点。Linux 集群搭建是 ZooKeeper 的一种常见应用场景,本文将详细介绍 ZooKeeper Linux 集群搭建...
"Zookeeper集群搭建" Zookeeper集群是一种分布式应用程序协调服务,用于管理和协调分布式系统中的应用程序。下面是 Zookeeper集群的搭建方式和角色介绍: 一、Zookeeper集群模式 Zookeeper集群有三种搭建方式:...
ZooKeeper集群搭建和管理 ZooKeeper是一种广泛使用的分布式协调服务,常用于分布式系统中的服务注册、配置管理、群策略管理等方面。下面将从 ZooKeeper 集群的搭建、配置、管理等方面进行详细的知识点介绍。 一、...
2. **Zookeeper集群搭建**:按照官方文档安装配置Zookeeper集群,确保集群稳定运行。 3. **SolrCloud集群配置**:在每台Solr服务器上安装Solr,并配置与Zookeeper集群的连接。通过Zookeeper提供的界面配置SolrCloud...