`
zhaoshijie
  • 浏览: 2262648 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

 
阅读更多
关键字:安装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 服务器实例。


分享到:
评论

相关推荐

    Docker下安装zookeeper(单机和集群)

    主要介绍了Docker下安装zookeeper(单机和集群),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Zookeeper单机及集群安装配置

    ### Zookeeper基础知识与架构 ...通过上述步骤,不仅可以完成Zookeeper单机版的安装配置,还可以搭建一个具备高可用特性的Zookeeper集群。这为分布式应用提供了一种可靠且高效的服务协调解决方案。

    zookeeper linux集群搭建流程

    在开始搭建 ZooKeeper 集群之前,需要提前在本地安装好 JDK,因为 ZooKeeper 是用 Java 编写的,需要运行在 JVM 上。 第一步:下载和解压 ZooKeeper 首先,需要下载 ZooKeeper 的安装包,例如 zookeeper-3.4.6.tar...

    有关zookeeper本地伪集群搭建的配置

    在本地搭建Zookeeper伪集群是开发者在测试和学习Zookeeper时常用的一种方式,它可以让用户在单机环境中模拟多节点集群的工作状态,而无需复杂的网络配置。以下将详细介绍如何进行Zookeeper本地伪集群的搭建。 首先...

    zookeeper 单机集群配置

    Zookeeper单机集群配置主要涉及到以下几个步骤: 1. **下载与解压**:首先,你需要从官方网站或者镜像站点下载ZooKeeper的最新稳定版本。下载完成后,将压缩包解压到你希望安装的目录,例如`/usr/local/zookeeper`...

    zookeeper伪集群配置

    在单机环境下,为了模拟多节点集群的效果,我们可以设置Zookeeper的伪集群模式。 一、Zookeeper伪集群配置原理 在伪集群模式下,尽管所有节点都在同一台物理机器上运行,但每个节点都有独立的配置文件和数据存储...

    zookeeper数据迁移从单例到集群linux命令过程

    ### Zookeeper 数据迁移从单例到集群 Linux 命令过程详解 #### 一、概述 Zookeeper 是一个分布式协调服务框架,它为分布式应用程序提供了一套完整的协调服务功能,如配置维护、命名服务、集群管理等。在实际生产...

    Zookeeper单机环境和集群环境搭建

    Zookeeper单机环境和集群环境搭建

    CentOS7下安装 Zookeeper单机版1

    【CentOS7下安装Zookeeper单机版】 Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和...

    ZooKeeper安装配置 集群

    无论是单机模式还是集群模式,甚至是介于两者之间的伪集群模式,都能够满足开发、测试乃至生产环境中对于分布式协调服务的需求。对于想要深入了解ZooKeeper及其应用场景的技术人员来说,掌握这些基础知识是非常重要...

    centos8安装zookeeper3.8.0详细步骤

    至此,单机版的 ZooKeeper 就安装成功了。 7. 搭建 ZooKeeper 集群 7.1. 配置集群 在 `/usr/local/zookeeper/conf` 目录下编辑 `zoo.cfg` 文件,添加服务器的 IP: ``` server.A=B:C:D ``` 其中,A 是服务器的...

    zookeeper伪集群

    Zookeeper伪集群是一种在单机环境下模拟多节点集群的方式,常用于开发、测试或学习Zookeeper的环境搭建。Zookeeper是Apache Hadoop项目的一个子项目,它是一个分布式协调服务,提供高可用性、数据一致性以及分布式锁...

    快速部署单机zookeeper集群(win环境)

    本文不讲zookeeper集群原理,只谈部署步骤。 默认读者已对zookeeper有最基本的认知,纯粹作为部署笔记,方便回忆。 另外本文是基于Windows部署的,Linux的步骤是基本相同的(只是启动脚本位置不同)。

    zookeeper集群配置详解

    首先,Zookeeper集群部署的前提条件是已经正确安装了Java环境,因为Zookeeper是用Java编写的,通过`java -version`命令可以查看当前Java版本。下载Zookeeper包可以通过官网提供的地址进行,这里使用的地址是***,...

    Zookeeper_安装和配置

    Zookeeper 的安装和配置相对简单,无论是单机模式还是集群模式,都可以通过简单的步骤快速搭建。它的核心功能包括配置管理、名字服务、分布式锁和集群管理,这些功能使得 Zookeeper 成为了分布式系统中不可或缺的...

Global site tag (gtag.js) - Google Analytics