【转载】转载原文:http://www.hollischuang.com/archives/1277
Zookeeper有三种安装方式:单机模式、集群模式、伪集群模式。
单机模式
单机模式表示只运行在一台服务器上,适合测试环境; 安装步骤如下:
一、下载ZooKeeper
二、解压
三、在conf目录下创建一个配置文件zoo.cfg
这里涉及到的参数会在后文统一介绍
四、启动ZooKeeper的Server
sh bin/zkServer.sh start
, 如果想要关闭,输入:zkServer.sh stop
五、检查是否启动成功
启动后使用命令echo ruok | nc localhost 2181
检查 Zookeeper 是否已经在服务。如果正常启动将输出imok
集群模式
Zookeeper 不仅可以单机提供服务,同时也支持多机组成集群来提供服务。
安装步骤和单机模式类似,只是配置不太一样。这里以三台机器为例
一、分别在不同的机器上下载并解压Zookeeper
二、创建myid文件
在每台机器上都创建一个myid文件。文件的内容只有一个数字。
server1机器的内容为:1 server2机器的内容为:2 server3机器的内容为:3
三、在conf目录下创建一个配置文件zoo.cfg
伪集群模式
实际上 Zookeeper 还支持另外一种伪集群的方式,也就是可以在一台物理机上运行多个 Zookeeper 实例
一、安装Zookeeper
建了3个文件夹,server1 server2 server3,然后每个文件夹里面解压一个zookeeper的下载包
二、创建myid文件
进入data目录,创建一个myid的文件,里面写入一个数字,server1,就写一个1,server2对应myid文件就写入2,server3对应myid文件就写个3
三、在conf目录下创建一个配置文件zoo.cfg
为了防止端口冲突,要配置不同的端口号。
常用参数
dataDir:用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件夹里。
dataLogDir:用于单独设置transaction log的目录,transaction log分离可以避免和普通log还有快照的竞争。
tickTime:心跳时间,为了确保client-server连接存在的,以毫秒为单位,最小超时时间为两个心跳时间。
clientPort:客户端监听端口。
initLimit:初始化连接时最长能忍受多少个心跳时间间隔数
syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度
server.x=[hostname]:nnnnn[:nnnnn]
伪集群模式安转时,后面连着的2个端口3个server都不要一样,否则端口冲突。
electionAlg
zookeeper默认使用FastLeaderElection进行Leader选举