天道不一定酬所有勤
但是,天道只酬勤
Hollis出品的全套Java面试宝典不来了解一下吗?

Zookeeper介绍(三)——Zookeeper的安装

Hollis出品的全套Java面试宝典不来了解一下吗?

Zookeeper概述中简单介绍了Zookeepr,工欲善其事,必先利其器。那么本文就介绍如何安装Zookeeper。

Zookeeper有三种安装方式:单机模式、集群模式、伪集群模式。

单机模式

单机模式表示只运行在一台服务器上,适合测试环境; 安装步骤如下:

一、下载ZooKeeper

二、解压

三、在conf目录下创建一个配置文件zoo.cfg

tickTime=2000  dataDir=/Users/zdandljb/zookeeper/data dataLogDir=/Users/zdandljb/zookeeper/dataLog            clientPort=2181

这里涉及到的参数会在后文统一介绍

四、启动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

tickTime=2000  dataDir=/Users/zdandljb/zookeeper/data dataLogDir=/Users/zdandljb/zookeeper/dataLog               
clientPort=2181                      
initLimit=5                         
syncLimit=2                                 
server.1=server1:2888:3888                      
server.2=server2:2888:3888                      
server.3=server3:2888:3888

伪集群模式

实际上 Zookeeper 还支持另外一种伪集群的方式,也就是可以在一台物理机上运行多个 Zookeeper 实例

一、安装Zookeeper

建了3个文件夹,server1 server2 server3,然后每个文件夹里面解压一个zookeeper的下载包

二、创建myid文件

进入data目录,创建一个myid的文件,里面写入一个数字,server1,就写一个1,server2对应myid文件就写入2,server3对应myid文件就写个3

三、在conf目录下创建一个配置文件zoo.cfg

tickTime=2000  dataDir=/Users/zdandljb/zookeeper/data dataLogDir=xxx/zookeeper/server1/         
clientPort=2181                              
initLimit=5                           
syncLimit=2                                 
server.1=server1:2888:3888                      
server.2=server2:2889:3889                                     
server.3=server3:2890:3890

为了防止端口冲突,要配置不同的端口号。

常用参数

dataDir:用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件夹里。

dataLogDir:用于单独设置transaction log的目录,transaction log分离可以避免和普通log还有快照的竞争。

tickTime:心跳时间,为了确保client-server连接存在的,以毫秒为单位,最小超时时间为两个心跳时间。

clientPort:客户端监听端口。

initLimit:初始化连接时最长能忍受多少个心跳时间间隔数

syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度

server.x=[hostname]:nnnnn[:nnnnn]

   配置集群里面的主机信息,其中:
  ①server.x:server.x的x要写在myid文件中,决定当前机器的id,
  ②第一个port用于连接leader,
  ③第二个用于leader选举。
  ④如果electionAlg为0,则不需要第二个port。
  ⑤hostname也可以填ip。

伪集群模式安转时,后面连着的2个端口3个server都不要一样,否则端口冲突。

electionAlg

  用于选举的实现的参数:
  1:LeaderElection
  2:AuthFastLeaderElection
  3:FastLeaderElection

zookeeper默认使用FastLeaderElection进行Leader选举

赞(3)
如未加特殊说明,此网站文章均为原创,转载必须注明出处。HollisChuang's Blog » Zookeeper介绍(三)——Zookeeper的安装
Hollis出品的全套Java面试宝典不来了解一下吗?

评论 抢沙发

HollisChuang's Blog

联系我关于我