安装ZooKeeper(单机、伪集群、集群)

转载 2018年04月17日 18:12:08
关键字:安装ZooKeeper(单机、伪集群、集群) 

推荐学习列表: 
zookeeper jvm设置:http://www.th7.cn/Program/java/201408/267970.shtml 
zookeeper java应用场景和实现:http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/ 
另一篇文章:http://blog.csdn.net/21aspnet/article/details/18990891 
zookeeper一系列使用设计(3种模式、安装、运维、维护等):http://www.cnblogs.com/ggjucheng/p/3352591.html 

ZooKeeper的安装模式分为三种,分别为:单机模式(stand-alone)、集群模式和集群伪分布模式。ZooKeeper 单机模式的安装相对比较简单,如果第一次接触ZooKeeper的话,建议安装ZooKeeper单机模式或者集群伪分布模式。 

1)单机模式 
首先,从Apache官方网站下载一个ZooKeeper 的最近稳定版本。 
http://hadoop.apache.org/zookeeper/releases.html 

作为国内用户来说,选择最近的的源文件服务器所在地,能够节省不少的时间。 
http://labs.renren.com/apache-mirror//hadoop/zookeeper/ 

ZooKeeper 要求 JAVA 的环境才能运行,并且需要 JAVA6 以上的版本,可以从 SUN 官网上下载,并对JAVA 环境变量进行设置。除此之外,为了今后操作的方便,我们需要对 ZooKeeper 的环境变量进行配置,方法如下,在 /etc/profile 文件中加入如下的内容: 

#Set ZooKeeper Enviroment 
export ZOOKEEPER_HOME=/root/hadoop-0.20.2/zookeeper-3.3.1 
export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf 

ZooKeeper 服务器包含在单个 JAR 文件中,安装此服务需要用户创建一个配置文档,并对其进行设置。我们在 ZooKeeper-*.*.* 目录(我们以当前 ZooKeeper 的最新版 3.3.1 为例,故此下面的“ ZooKeeper-*.*.* ”都将写为“ ZooKeeper-3.3.1” )的 conf 文件夹下创建一个 zoo.cfg 文件,它包含如下的内容: 

tickTime=2000 
dataDir=/var/zookeeper 
clientPort=2181 

在这个文件中,我们需要指定 dataDir 的值,它指向了一个目录,这个目录在开始的时候需要为空。下面是每个参数的含义: 
tickTime :基本事件单元,以毫秒为单位。它用来指示心跳,最小的 session 过期时间为两倍的 tickTime. 。 
dataDir :存储内存中数据库快照的位置,如果不设置参数,更新事务日志将被存储到默认位置。 
clientPort :监听客户端连接的端口 

使用单机模式时用户需要注意:这种配置方式下没有 ZooKeeper 副本,所以如果 ZooKeeper 服务器出现故障, ZooKeeper 服务将会停止。 
以下代码清单 A 是我们的根据自身情况所设置的 zookeeper 配置文档: zoo.cfg 
代码清单 A : zoo.cfg 
# The number of milliseconds of each tick 
tickTime=2000 

# the directory where the snapshot is stored. 
dataDir=/root/hadoop-0.20.2/zookeeper-3.3.1/snapshot/data 

# the port at which the clients will connect 
clientPort=2181 

2)集群模式 
为了获得可靠的 ZooKeeper 服务,用户应该在一个集群上部署 ZooKeeper 。只要集群上大多数的ZooKeeper 服务启动了,那么总的 ZooKeeper 服务将是可用的。另外,最好使用奇数台机器。 如果 zookeeper拥有 5 台机器,那么它就能处理 2 台机器的故障了。 

之后的操作和单机模式的安装类似,我们同样需要对 JAVA 环境进行设置,下载最新的 ZooKeeper 稳定版本并配置相应的环境变量。不同之处在于每台机器上 conf/zoo.cfg 配置文件的参数设置,参考下面的配置: 

tickTime=2000 
dataDir=/var/zookeeper/ 
clientPort=2181 
initLimit=5 
syncLimit=2 
server.1=zoo1:2888:3888 
server.2=zoo2:2888:3888 
server.3=zoo3:2888:3888 

“ server.id=host:port:port. ”指示了不同的 ZooKeeper 服务器的自身标识,作为集群的一部分的机器应该知道 ensemble 中的其它机器。用户可以从“ server.id=host:port:port. ”中读取相关的信息。 在服务器的 data( dataDir 参数所指定的目录)目录下创建一个文件名为 myid 的文件,这个文件中仅含有一行的内容,指定的是自身的 id 值。比如,服务器“ 1 ”应该在 myid 文件中写入“ 1 ”。这个 id 值必须是 ensemble 中唯一的,且大小在 1 到 255 之间。这一行配置中,第一个端口( port )是从( follower )机器连接到主( leader )机器的端口,第二个端口是用来进行 leader 选举的端口。在这个例子中,每台机器使用三个端口,分别是: clientPort ,2181 ; port , 2888 ; port , 3888 。 

我们在拥有三台机器的 Hadoop 集群上测试使用 ZooKeeper 服务,下面代码清单 B 是我们根据自身情况所设置的 ZooKeeper 配置文档: 
代码清单 B : 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. 
dataDir=/root/hadoop-0.20.2/zookeeper-3.3.1/snapshot/d1 

# the port at which the clients will connect 
clientPort=2181 

server.1=IP1:2887:3887 
server.2=IP2:2888:3888 
server.3=IP3:2889:3889 

清单中的 IP 分别对应的配置分布式 ZooKeeper 的 IP 地址。当然,也可以通过机器名访问 zookeeper ,但是需要在ubuntu 的 hosts 环境中进行设置。读者可以查阅 Ubuntu 以及 Linux 的相关资料进行设置。 

3)集群伪分布 
简单来说,集群伪分布模式就是在单机下模拟集群的ZooKeeper服务。 
那么,如何对配置 ZooKeeper 的集群伪分布模式呢?其实很简单,在 zookeeper 配置文档中, clientPort参数用来设置客户端连接 zookeeper 的端口。 server.1=IP1:2887:3887 中, IP1 指示的是组成 ZooKeeper 服务的机器 IP 地址, 2887 为用来进行 leader 选举的端口, 3887 为组成 ZooKeeper 服务的机器之间通信的端口。集群伪分布模式我们使用每个配置文档模拟一台机器,也就是说,需要在单台机器上运行多个 zookeeper 实例。但是,我们必须要保证各个配置文档的 clientPort 不能冲突。 

下面是我们所配置的集群伪分布模式,通过 zoo1.cfg , zoo2.cfg , zoo3.cfg 模拟了三台机器的 ZooKeeper集群。详见代码清单 C : 
代码清单C : zoo1.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. 
dataDir=/root/hadoop-0.20.2/zookeeper-3.3.1/d_1 

# the port at which the clients will connect 
clientPort=2181 
server.1=localhost:2887:3887 
server.2=localhost:2888:3888 
server.3=localhost:2889:3889 

zoo2.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. 
dataDir=/root/hadoop-0.20.2/zookeeper-3.3.1/d_2 

# the port at which the clients will connect 
clientPort=2182 

#the location of the log file 

dataLogDir=/root/hadoop-0.20.2/zookeeper-3.3.1/logs 
server.1=localhost:2887:3887 
server.2=localhost:2888:3888 
server.3=localhost:2889:3889 

zoo3.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. 
dataDir=/root/hadoop-0.20.2/zookeeper-3.3.1/d_2 

# the port at which the clients will connect 
clientPort=2183 

#the location of the log file 
dataLogDir=/root/hadoop-0.20.2/zookeeper-3.3.1/logs 
server.1=localhost:2887:3887 
server.2=localhost:2888:3888 
server.3=localhost:2889:3889 

从上述三个代码清单中可以看到,除了 clientPort 不同之外, dataDir 也不同。另外,不要忘记在 dataDir 所对应的目录中创建 myid 文件来指定对应的 zookeeper 服务器实例。 

【ZooKeeper】单机伪集群搭建(适用于mac)

1.配置.zookeeper下载地址:http://apache.mirrors.lucidnetworks.net/zookeeper/可以选择需要的版本,我下载的是zookeeper-3.4.6....
  • nuaazhaofeng
  • nuaazhaofeng
  • 2017-07-17 15:17:26
  • 808

zookeeper 单机伪集群配置

由于手头机器不足,所以在一台机器上部署了3个server,如果你手头也比较紧,也可以这么做。那么我建了3个文件夹,如下 server1 server2 server3 然后每个文件夹里面解压一...
  • zh521zh
  • zh521zh
  • 2016-06-22 10:00:45
  • 422

zookeeper入门(1)在单机上实现ZooKeeper伪机群/伪集群部署

《zooker入门系列教程》: 1 - 如何在单机上实现ZooKeeper伪机群/伪集群部署 2 - 解读zookeeper的配置项 ----- 此文是为手头没有多余机器可以尝试而...
  • Poechant
  • Poechant
  • 2011-07-26 10:22:22
  • 18328

zookeeper学习笔记———《zookeeper-3.4.6单机伪集群配置》

1.配置 先下载zookeeper-3.4.6.tar.gz到本机  下载地址:进去http://apache.fayea.com/zookeeper/zookeeper-3.4.6/界面,点击zo...
  • lcj369387335
  • lcj369387335
  • 2016-01-16 22:46:35
  • 575

linux上部署zookeeper伪集群

1.下载   zookeeper-3.4.6.tar.gz 2.解压压缩包 tar -zxvf  zookeeper-3.4.6.tar.gz 3.重命名文件夹zookeeper-3.4.6为zook...
  • lanlw123
  • lanlw123
  • 2016-11-29 14:30:35
  • 658

(五)zookeeper windows单机模式和伪集群模式

首先在官网上下载zookeeper稳定版本,下载地址:http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/ 下载zookeeper-3.4...
  • lovesummerforever
  • lovesummerforever
  • 2015-10-10 10:58:21
  • 4803

zookeeper在linux centos7下的集群介绍和配置

Zookeeper 有三种运行模式:单机模式、伪集群模式和集群模式。 单机模式 单机模式,顾名思义,只有一个zookeeper实例,我们安装完成并且启动zk,就是一个单机模式. 具体步骤和上...
  • yin380697242
  • yin380697242
  • 2016-08-11 23:33:30
  • 2065

zookeeper在windows下的伪集群模式

1.下载(本次测试环境是3.4.6的版本) http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.6/ 2.下载zookeeper-3...
  • ceasadan
  • ceasadan
  • 2016-08-28 09:27:38
  • 3323

Zookeeper在windows搭建伪集群

  • 2017年10月19日 14:00
  • 221KB
  • 下载
收藏助手
不良信息举报
您举报文章:安装ZooKeeper(单机、伪集群、集群)
举报原因:
原因补充:

(最多只允许输入30个字)