一、Zookeeper的搭建方式
Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。
■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境;
■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例;
■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble)
Zookeeper通过复制来实现高可用性,只要集合体中半数以上的机器处于可用状态,它就能够保证服务继续。为什么一定要超过半数呢?这跟Zookeeper的复制策略有关:zookeeper确保对znode 树的每一个修改都会被复制到集合体中超过半数的机器上。
1.1 Zookeeper的单机模式搭建
下载ZooKeeper:http://pan.baidu.com/s/1pJlwbR9
解压:tar -zxvf zookeeper-3.4.5.tar.gz 重命名:mv zookeeper-3.4.5 zk
配置文件:在conf目录下删除zoo_sample.cfg文件,创建一个配置文件zoo.cfg。
tickTime=2000
dataDir=/usr/local/zk/data
dataLogDir=/usr/local/zk/dataLog
clientPort=2181
配置环境变量:为了今后操作方便,我们需要对Zookeeper的环境变量进行配置,方法如下在/etc/profile文件中加入如下内容:
export ZOOKEEPER_HOME=/usr/local/zk
export PATH=.:$HADOOP_HOME/bin:$ZOOKEEPER_HOME/bin:$JAVA_HOME/bin:$PATH
启动ZooKeeper的Server:zkServer.sh start;关闭ZooKeeper的Server:zkServer.sh stop
1.2 Zookeeper的伪集群模式搭建
Zookeeper不但可以在单机上运行单机模式Zookeeper,而且可以在单机模拟集群模式 Zookeeper的运行,也就是将不同节点运行在同一台机器。我们知道伪分布模式下Hadoop的操作和分布式模式下有着很大的不同,但是在集群为分布 式模式下对Zookeeper的操作却和集群模式下没有本质的区别。显然,集群伪分布式模式为我们体验Zookeeper和做一些尝试性的实验提供了很大 的便利。比如,我们在实验的时候,可以先使用少量数据在集群伪分布模式下进行测试。当测试可行的时候,再将数据移植到集群模式进行真实的数据实验。这样不 但保证了它的可行性,同时大大提高了实验的效率。这种搭建方式,比较简便,成本比较低,适合测试和学习,如果你的手头机器不足,就可以在一台机器上部署了 3个server。
1.2.1. 注意事项
在一台机器上部署了3个server,需要注意的是在集群为分布式模式下我们使用的每个配置文档模拟一台机器,也就是说单台机器及上运行多个Zookeeper实例。但是,必须保证每个配置文档的各个端口号不能冲突,除了clientPort不同之外,dataDir也不同。另外,还要在dataDir所对应的目录中创建myid文件来指定对应的Zookeeper服务器实例。
■ clientPort端口:如果在1台机器上部署多个server,那么每台机器都要不同的 clientPort,比如 server1是2181,server2是2182,server3是2183
■ dataDir和dataLogDir:dataDir和dataLogDir也需要区分下,将数据文件和日志文件分开存放,同时每个server的这两变量所对应的路径都是不同的
■ server.X和myid: server.X 这个数字就是对应,data/myid中的数字。在3个server的myid文件中分别写入了0,1,2,那么每个server中的zoo.cfg都配 server.0 server.2,server.3就行了。因为在同一台机器上,后面连着的2个端口,3个server都不要一样,否则端口冲突
下面是我所配置的集群伪分布模式,分别通过zoo1.cfg、zoo2.cfg、zoo3.cfg来模拟由三台机器的Zookeeper集群,代码清单 zoo1.cfg如下:
# The number of milliseconds of each tick
tickTime= # The number of ticks that the initial
# synchronization phase can take
initLimit= # The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit= # the directory where the snapshot is stored.
dataDir=/usr/local/zk/data_1 # the port at which the clients will connect
clientPort= #the location of the log file
dataLogDir=/usr/local/zk/logs_1 server.=localhost::
server.=localhost::
server.=localhost::
代码清单 zoo2.cfg如下:
# The number of milliseconds of each tick
tickTime= # The number of ticks that the initial
# synchronization phase can take
initLimit= # The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit= # the directory where the snapshot is stored.
dataDir=/usr/local/zk/data_2 # the port at which the clients will connect
clientPort= #the location of the log file
dataLogDir=/usr/local/zk/logs_2 server.=localhost::
server.=localhost::
server.=localhost::
代码清单 zoo3.cfg如下:
# The number of milliseconds of each tick
tickTime= # The number of ticks that the initial
# synchronization phase can take
initLimit= # The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit= # the directory where the snapshot is stored.
dataDir=/usr/local/zk/data_3 # the port at which the clients will connect
clientPort= #the location of the log file
dataLogDir=/usr/local/zk/logs_3 server.=localhost::
server.=localhost::
server.=localhost::
1.2.2 启动
在集群为分布式下,我们只有一台机器,按时要运行三个Zookeeper实例。此时,如果在使用单机模式的启动命令是行不通的。此时,只要通过下面三条命令就能运行前面所配置的Zookeeper服务。如下所示:
zkServer.sh start zoo1.sh
zkServer.sh start zoo2.sh
zkServer.sh start zoo3.sh
启动过程,如下图所示:
启动结果,如下图所示:
aaarticlea/png;base64,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" alt="" />
在运行完第一条指令之后,会出现一些错误异常,产生异常信息的原因是由于Zookeeper服务的每个实例都拥有全局配置信息,他们在启动的时候会随时随地的进行Leader选举操作。此时,第一个启动的Zookeeper需要和另外两个Zookeeper实例进行通信。但是,另外两个Zookeeper实例还没有启动起来,因此就产生了这的异样信息。我们直接将其忽略即可,待把图中“2号”和“3号”Zookeeper实例启动起来之后,相应的异常信息自然会消失。此时,可以通过下面三条命令,来查询。
zkServer.sh status zoo1.cfg
zkServer.sh status zoo2.cfg
zkServer.sh status zoo3.cfg
Zookeeper服务的运行状态,如下图所示:
aaarticlea/png;base64,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" alt="" width="671" height="183" />
1.3 Zookeeper的集群模式搭建
为了获得可靠地Zookeeper服务,用户应该在一个机群上部署Zookeeper。只要机群上大多数的Zookeeper服务启动了,那么总的Zookeeper服务将是可用的。集群的配置方式,和前两种类似,同样需要进行环境变量的配置。在每台机器上conf/zoo.cf配置文件的参数设置相同
1.3.1 创建myid
在dataDir(/usr/local/zk/data)目录创建myid文件
Server0机器的内容为:0
Server1机器的内容为:1
Server2机器的内容为:2
1.3.2 编写配置文件
在conf目录下删除zoo_sample.cfg文件,创建一个配置文件zoo.cfg,如下所示,代码清单 zoo.cfg中的参数设置
# The number of milliseconds of each tick
tickTime= # The number of ticks that the initial
# synchronization phase can take
initLimit= # The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit= # the directory where the snapshot is stored.
dataDir=/usr/local/zk/data # the port at which the clients will connect
clientPort= #the location of the log file
dataLogDir=/usr/local/zk/log server.=hadoop::
server.=hadoop0::
server.=hadoop1::
1.3.3 启动
分别在3台机器上启动ZooKeeper的Server:zkServer.sh start;
二、Zookeeper的配置
Zookeeper的功能特性是通过Zookeeper配置文件来进行控制管理的(zoo.cfg).这样的设计其实有其自身的原因,通过前面对Zookeeper的配置可以看出,在对Zookeeper集群进行配置的时候,它的配置文档是完全相同的。集群伪分布模式中,有少部分是不同的。这样的配置方式使得在部署Zookeeper服务的时候非常方便。如果服务器使用不同的配置文件,必须确保不同配置文件中的服务器列表相匹配。
在设置Zookeeper配置文档时候,某些参数是可选的,某些是必须的。这些必须参数就构成了Zookeeper配置文档的最低配置要求。另外,若要对Zookeeper进行更详细的配置,可以参考下面的内容。
2.1 基本配置
下面是在最低配置要求中必须配置的参数:
(1) client:监听客户端连接的端口。
(2) tickTime:基本事件单元,这个时间是作为Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,每隔tickTime时间就会发送一个心跳;最小 的session过期时间为2倍tickTime
dataDir:存储内存中数据库快照的位置,如果不设置参数,更新食物的日志将被存储到默认位置。
应该谨慎的选择日志存放的位置,使用专用的日志存储设备能够大大提高系统的性能,如果将日志存储在比较繁忙的存储设备上,那么将会很大程度上影像系统性能。
2.2 高级配置
下面是高级配置参数中可选配置参数,用户可以使用下面的参数来更好的规定Zookeeper的行为:
(1) dataLogdDir
这个操作让管理机器把事务日志写入“dataLogDir”所指定的目录中,而不是“dataDir”所指定的目录。这将允许使用一个专用的日志设备,帮助我们避免日志和快照的竞争。配置如下:
# the directory where the snapshot is stored
dataDir=/usr/local/zk/data
(2) maxClientCnxns
这个操作将限制连接到Zookeeper的客户端数量,并限制并发连接的数量,通过IP来区分不同的客户端。此配置选项可以阻止某些类别的Dos攻击。将他设置为零或忽略不进行设置将会取消对并发连接的限制。
例如,此时我们将maxClientCnxns的值设为1,如下所示:
# set maxClientCnxns
maxClientCnxns=1
启动Zookeeper之后,首先用一个客户端连接到Zookeeper服务器上。之后如果有第二个客户端尝试对Zookeeper进行连接,或者有某些隐式的对客户端的连接操作,将会触发Zookeeper的上述配置。
(3) minSessionTimeout和maxSessionTimeout
即最小的会话超时和最大的会话超时时间。在默认情况下,minSession=2*tickTime;maxSession=20*tickTime。
2.3 集群配置
(1) initLimit
此配置表示,允许follower(相对于Leaderer言的“客户端”)连接并同步到Leader的初始化连接时间,以tickTime为单位。当初始化连接时间超过该值,则表示连接失败。
(2) syncLimit
此配置项表示Leader与Follower之间发送消息时,请求和应答时间长度。如果follower在设置时间内不能与leader通信,那么此follower将会被丢弃。
(3) server.A=B:C:D
A:其中 A 是一个数字,表示这个是服务器的编号;
B:是这个服务器的 ip 地址;
C:Leader选举的端口;
D:Zookeeper服务器之间的通信端口。
(4) myid和zoo.cfg
除了修改 zoo.cfg 配置文件,集群模式下还要配置一个文件 myid,这个文件在 dataDir 目录下,这个文件里面就有一个数据就是 A 的值,Zookeeper 启动时会读取这个文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是那个 server。
三、搭建ZooKeeper服务器集群
搭建要求:
(1) zk服务器集群规模不小于3个节点
(2) 要求各服务器之间系统时间要保持一致。
3.1 安装配置ZK
(1) 使用WinScp将Zk传输到Hadoop主机上的/usr/local,我用的版本是zookeeper-3.4.5.tar.gz。
(2) 在hadoop的/usr/local目录下,解压缩zk....tar.gz,设置环境变量
解压缩:在/usr/local目录下,执行命令:tar -zxvf zookeeper-3.4.5.tar.gz,如下图所示:
重命名:解压后将文件夹,重命名为zk,执行命令: mv zookeeper-3.4.5 zk,如下图所示:
设置环境变量:执行命令: vi /etc/profile ,添加 :export ZOOKEEPER_HOME=/usr/local/zk,如图2.3所示的内容。执行命令:source /etc/profile 如下图所示:
2.2 修改ZK配置文件
(1) 重命名:将/usr/local/zk/conf目录下zoo_sample.cfg,重命名为zoo.cfg,执行命令:mv zoo_sample.cfg zoo.cfg。如如下图所示:
(2) 查看:在/usr/local/zk/conf目录下,修改文件 vi zoo.cfg,文件内容如下图所示。在该文件中dataDir表示文件存放目录,它的默认设置为/tmp/zookeeper这是一个临时存放目录,每次重启后会丢失,在这我们自己设一个目录,/usr/local/zk/data。
(3) 创建文件夹:mkdir /usr/local/zk/data
(4) 创建myid:在data目录下,创建文件myid,值为0;vi myid ;内容为0。
(5) 编辑:编辑该文件,执行vi zoo.cfg ,修改dataDir=/usr/local/zk/data。
新增:
server.0=hadoop:2888:3888
server.1=hadoop0:2888:3888
server.2=hadoop1:2888:3888
tickTime :这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳;
dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里;
clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
当这些配置项配置好后,就可以启动 Zookeeper 了,启动后使用命令echo ruok | nc localhost 2181检查 Zookeeper 是否已经在服务。
2.3 配置其他节点
(1) 把haooop主机的zk目录和/etc/profile目录,复制到hadoop0和hadoop1中。执行命令:
scp -r /usr/local/zk/ hadoop0:/usr/local/
scp -r /usr/local/zk/ hadoop1:/usr/local/
scp /etc/profile hadoop0:/etc/
scp /etc/profile hadoop1:/etc/
ssh hadoop0
suorce /etc/profile
vi /usr/local/zk/data/myid
exit
ssh hadoop1
suorce /etc/profile
vi /usr/local/zk/data/myid
exit
(2) 把hadoop1中相应的myid的值改为1,把hadoop2中相应的myid的值改为2。
四、启动检验
(1) 启动,在三个节点上分别执行命令zkServer.sh start
hadoop节点:
hadoop0节点:
hadoop1节点:
(2) 检验,在三个节点上分别执行命令zkServer.sh status,从下面的图中我们会发现hadoop和hadoop1为Follower,hadoop0为Leader。
hadoop节点:
hadoop0节点:
hadoop1节点:
如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】。
如果,您希望更容易地发现我的新博客,不妨点击一下左下角的【关注我】。
如果,您对我的博客所讲述的内容有兴趣,请继续关注我的后续博客,我是【Sunddenly】。本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
ZooKeeper学习第二期--ZooKeeper安装配置的更多相关文章
-
【转载】ZooKeeper学习第二期--ZooKeeper安装配置
原文地址(https://www.cnblogs.com/sunddenly/p/4018459.html) 一.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及 ...
-
ZooKeeper学习第二期--ZooKeeper安装配置(转)
转载来源:https://www.cnblogs.com/sunddenly/p/4018459.html 一.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪 ...
-
【转】ZooKeeper学习第二期--Zookeeper命令操作
一.Zookeeper的四字命令 Zookeeper支持某些特定的四字命令字母与其的交互.他们大多数是查询命令,用来获取Zookeeper服务的当前状态及相关信息.用户在客户端可以通过telnet或n ...
-
[转]ZooKeeper学习第一期---Zookeeper简单介绍
ZooKeeper学习第一期---Zookeeper简单介绍 http://www.cnblogs.com/sunddenly/p/4033574.html 一.分布式协调技术 在给大家介绍ZooKe ...
-
ZooKeeper学习第一期---Zookeeper简单介绍
一.分布式协调技术 在给大家介绍ZooKeeper之前先来给大家介绍一种技术——分布式协调技术.那么什么是分布式协调技术?那么我来告诉大家,其实分布式协调技术主要用来解决分布式环境当中多个进程之间的同 ...
-
ZooKeeper学习第一期---Zookeeper简单介绍(转)
转载来源:https://www.cnblogs.com/sunddenly/p/4033574.html 一.分布式协调技术 在给大家介绍ZooKeeper之前先来给大家介绍一种技术--分布式协调技 ...
-
Zookeeper、Solr和Tomcat安装配置实践
Zookeeper.Solr和Tomcat安装配置实践
-
PHP学习笔记----IIS7下安装配置php环境
原文:PHP学习笔记----IIS7下安装配置php环境 Php如何安装 Php版本的选择 Php在windows下的(php5.4.7)有两种版本: VC9 x86 Non Thread Safe ...
-
zookeeper学习(一)安装、配置、运行
说明:zookeeper完全可以standalone,也可以伪集群形式,当然生产中都是集群形式.另外,也可以在windows下运行. 如果只是研究用,完全可以在windows下使用standalone ...
随机推荐
-
2.Visual FoxPro内存变量显示和清除命令
一.内存变量的显示相关命令: 1. LIST MEMORY[LIKE<通配符>][TO PRINTER |TO FILE<文件名>] 2. DISPLAY MEMORY[L ...
-
XAML parser exception
To debug xaml exception: Visual Studio -> Debug -> Exception -> Common Language Runtime Exc ...
-
日常API之C#百度人脸识别
最近看到一只我家徒儿发来的链接,原来是一堆百度AI的SDK,于是一时兴起就做了一只人脸识别,喵喵喵(●'◡'●) 一.准备工作 首先,当然是下载SDK啦:http://ai.baidu.com/sdk ...
-
Android用AlarmManager实现后台任务-android学习之旅(63)
因为Timer不能唤醒cpu,所以会在省电的原因下失效,所以需要唤醒cpu在后台稳定化的执行任务,AlarmManager能够唤醒cpu 这个例子讲解了如何通过Service来在后他每一个小时执行.特 ...
-
Vue.js 学习笔记 第5章 内置指令
本篇目录: 5.1 基本指令 5.2 条件渲染指令 5.3 列表渲染指令 v-for 5.4 方法与事件 5.5 实战:利用计算属性.指令等知识开发购物车 回顾一下第2.2节,我们己经介绍过指令(Di ...
-
聊聊微服务熔断降级Hystrix
在现在的微服务使用的过程中,经常会遇到依赖的服务不可用,那么如果依赖的服务不可用的话,会导致把自己的服务也会拖死,那么就产生了熔断,熔断顾名思义就是当服务处于不可用的时候采取半开关的状态,达到一定数量 ...
-
PHP 迭代器和生成器
迭代和迭代器 迭代是指反复执行一个过程,每执行一次叫做迭代一次.比如普通的遍历便是迭代: $arr = [1, 2, 3, 4, 5];foreach($arr as $key => $valu ...
-
Android SDK Download List
from://http://sofire.iteye.com/blog/1961552 Android SDK Download List! 通过分析SDK Manager里要用到的repositor ...
-
无耻之徒(美版)第七季/全集Shameless US迅雷下载
英文全名Shameless (US),第7季(2016).本季看点:<无耻之徒>(Shameless)第七季.本季故事起始于「一个月之后」,Frank从昏迷中醒来后得知亲人背叛了他,于是向 ...
-
[LeetCode] 560. Subarray Sum Equals K_Medium
Given an array of integers and an integer k, you need to find the total number of continuous subarra ...