集群安装
1.安装JDK。下载地址:http://java.sun.com/javase/downloads/index.jsp
设置JAVA_HOME ,将$JAVA_HOME/bin 加到PATH变量里。
2.下载Zookeeper 地址:http://hadoop.apache.org/zookeeper/releases.html 解压到相应目录。
3.创建配置文件。conf/zoo.cfg 内容例如:
#tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 毫秒时间就会发送一个心跳。
tickTime=2000
#dataDir:Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
dataDir=/tmp/zookeeper/data
#dataLogDir:日志文件保存的位置
dataLogDir=/tmp/zookeeper/log
#clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
clientPort=2181
#initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。
#当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20 秒。
initLimit=10
#syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 5*2000=10 秒
syncLimit=5
#server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
#如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。
server.1=192.168.211.1:2888:3888
server.2=192.168.211.2:2888:3888
server.3=192.168.211.3:2888:3888
#自动清理功能是3.4.0之后提供的功能。较低的版本需要手工运行清理工具。
#自动清理时保存在datadir里的数据快照数。最小值3
autopurge.snapRetainCount=3
#自动清理任务的间隔小时数
autopurge.purgeInterval=1
4.创建myid文件。
myid文件只包含一个单行文本,内容为机器的编号。server.A=B:C:D 其中的数字A 进入到dataDir,echo A > myid 。
5.测试
全部配置完成后,进入各机器Zookeeper的bin目录,执行./zkServer.sh start
之后执行echo stat | nc localhost 2181 查看当前节点状态。
Observers配置
为提高zookeeper伸缩性而设计。Observers不参与投票的服务器,可以接受客户端的连接,将写请求转发给领导节点。
设置 ZooKeeper 使用 Observers 非常简单,只需要在配置文件中有两处改动。
首先是每个 Observer 的配置文件中都要有这么一行:
peerType=observer
这行让服务器作为一个 Observer 来工作。之后,在每个服务器配置文件中,你必须在服务器定义行给每个 Observer 加入 :observer 。比如:
Server.4=192.168.211.4:2888:3888:observer
这让每个其他服务器知道 server.4 是一个 Observer,就不会让它进行投票了。
有关Obervers的说明详见gnawux的译文 http://wangxu.me/blog/p/320
系统监控
使用命令监控
例如:
echo stat | nc ip port
echo conf | nc ip port
或者telnet ip port 输入 stat 、conf等。
常用指令如下:
conf :显示配置参数
cons :列出所有的连接
crst :重置连接/session的统计信息
dump :Lists the outstanding sessions and ephemeral nodes. Leader节点有效。
envi :输出环境变量
ruok : 是否runok.
Srst:重置服务器统计信息。
Srvr:显示服务器信息。平均等待时间,运行的模式等。
Stat:显示服务状态。
wchs :Lists brief information on watches for the server. 显示多少个连接多少个被watch的path等。
wchc :Lists detailed information on watches for the server, by session。 小心使用,可能影响性能。
wchp : Lists detailed information on watches for the server, by path。 小心使用,可能影响性能。
mntr : 输出集群健康监测相关的信息。
使用jmx监控
修改zkServer.sh, ZOOMAIN部分的内容修改类似如下:
ZOOMAIN="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=$JMXLOCALONLY -Djava.rmi.server.hostname=10.10.249.197
-Dcom.sun.management.jmxremote.port=1911
-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
org.apache.zookeeper.server.quorum.QuorumPeerMain"
启动后,可在远程启动jconsole通过jmx连接后监控。
问题处理
当文件损坏导致无法启动时,解决方法如下:
1.启动其它能正常启动的zookeeper,并用echo ruok| nc ip port 判断正常运行。
2.删除 datadir/version-2 and datalogdir/version-2/ 目录。
3.启动zookeeper。
分享到:
相关推荐
zookeeper-3.4.2.tar.gz
Linux下Zookeeper集群的安装
zookeeper linux 搭建流程,zookeeper linux 搭建流程zookeeper linux 搭建流程zookeeper linux 搭建流程。
redis zookeeper kafka集群安装手册
zookeeper3.4.9集群安装
zookeeper集群安装.doc
zookeeper伪集群安装流程,在一台机器上安装三个集群节点操作步骤。
在Linux上安装ZooKeeper伪集群,CentOS7+ZooKeeper3.4.12
Zookeeper单机及集群安装配置
zookeeper集群安装文档,官方文档上这么解释zookeeper,它是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群...
基于ZooKeeper的集群节点管理方案的设计与实现,李文韵,崔毅东,随着集群技术的普及,集群技术在节点管理方面的缺陷也日益凸显。无法及时了解集群中各节点的资源状态,无法对节点管理给予有效的
ZooKeeper集群的安装、配置 ZooKeeper集群的安装、配置
ZooKeeper安装配置 集群ZooKeeper安装配置 集群ZooKeeper安装配置 集群ZooKeeper安装配置 集群ZooKeeper安装配置 集群ZooKeeper安装配置 集群ZooKeeper安装配置 集群ZooKeeper安装配置 集群ZooKeeper安装配置 集群...
zookeeper单节点安装和伪分布式集群安装和完全分布式集群安装
本文档包括storm集群部署的整体过程:JDK部署,zookeeper集群部署,storm集群部署
zookeeper集群环境安装
zookeeper一键式安装shell脚本,无需手动搭建集群环境,脚本运行即可自动配置
这个是我自己使用centerOS真实搭建的实践积累,文档包含了zookeeper伪集群和集群的搭建操作方法,还有截图和linux命令。这是实践积累,平常实操点内容并使用文档记录这些点滴,以免以后会忘记。
ZooKeeper集群的安装、配置、高可用测试
win7安装部署zookeeper伪集群第1种方法,全网最全的zookeeper安装集群的步骤,手把手讲解