Zookeeper基础教程(二):Zookeeper安装
上一篇说了,一个Zookeeper集群一般认为至少需要3个节点,所以我们这里安装需要准备三台虚拟机:
# 192.168.209.133 test1
# 192.168.209.134 test2
# 192.168.209.135 test3
当然,我们也可以先安装一台,然后克隆出多台,再进行配置也可以。
然后我们需要先下载Zookeeper,进入官网,我这里选择了Apache ZooKeeper 3.4.14的版本,因为Zookeeper是采用java写的,因此我们我们还需要准备jdk:
Zookeeper官网下载:http://zookeeper.apache.org/releases.html
JDK下载:https://www.oracle.com/java/technologies/
百度云下载:https://pan.baidu.com/s/13dPvlNhaLocDxCr84-Y0rw (提取码: 9ir4)
另外说明一下,博主使用的Linux版本是Ubuntu16.04的server版
安装JDK
下载好包之后,我们可以先部署jdk,这个网上有很多教程,这里就不细述了
# 解压
sudo tar -zxvf jdk-8u202-linux-x64.tar.gz
# 移动到指定目录,我这里移动到/opt目录
sudo mv jdk1.8.0_202 /opt/
# 在/usr/local/bin下创建java的软连接
sudo ln -s /opt/jdk1.8.0_202/bin/java /usr/local/bin/java
# 检验java是否部署完成
java -version

安装Zookeeper
接下来是安装Zookeeper,这里我们使用的是Zookeeper编译好了的包,因此我们只需要直接部署就可以了
# 下载好之后,进去Zookeeper包所在目录进行解压
sudo tar -zxvf zookeeper-3.4.14.tar.gz
# 解压之后的文件放在当前目录的zookeeper-3.4.14目录中,我们可以将它们移动到我们自己的某个目录,比如这里我将它放到/opt目录下
sudo mv zookeeper-3.4.14 /opt/
之后就是配置了。我们进入Zookeeper的根目录,里面的conf目录下有一个zoo_sample.cfg文件,这个是Zookeeper配置文件的样板,我们将它复制一份并重命名为zoo.cfg

我们查看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.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
这些事Zookeeper的默认配置,包括心跳、端口等等,如果你不确定他们的作用,可以不用改它们,用默认的就行了,但是这里我们为了方便,修改dataDir配置,同时新增dataLogDir配置:
# 日志文件所在目录
dataLogDir=/opt/zookeeper-3.4.14/logs
# 数据文件保存目录
dataDir=/opt/zookeeper-3.4.14/data
现在我们只需要配置集群节点就行了,这个配置比较特殊,它是采用特定格式描述的:
server.n=ip:A:B
# n是节点编号,一般从1开始
# ip是集群中节点所在服务器IP地址
# A是LF通信端口,表示该服务器与集群中的leader交换的信息的端口,默认是2888
# B是选举端口,表示选举新leader时服务器间相互通信的端口(当leader挂掉时,其余服务器会相互通信,选择出新的leader),默认是3888
因为我们为集群准备了3台虚拟机,因此我们的配置应该是这样的:
server.1=192.168.209.133:2888:3888
server.2=192.168.209.134:2888:3888
server.3=192.168.209.135:2888:3888
将它加到zoo.conf中结果如下:

上面说了server.n是配置集群的服务节点,接下来就是配置当前服务器时那个节点,进入我们上面配置的那个dataDir目录,里面有一个myid文件(如果没有的话就自己创建),打开后输入1,并保存,这里的1表示的就是server.n中的n,告诉Zookeeper当前服务器所属的节点编号

然后可以启动Zookeeper了,启动Zookeeper是通过Zookeeper根目录下的bin目录下的zkServer.sh文件来启动的,我们可以先查看它有哪些命令:
./bin/zkServer.sh --help
# 启动,默认是后台启动,当前shell不会被阻塞
zkServer.sh start
# 启动,会导致shell被阻塞
zkServer.sh start-foreground
# 停止
zkServer.sh stop
# 重启
zkServer.sh restart
# 查看当前节点状态
zkServer.sh status
# upgrade是升级,print-cmd是打印命令,这两个用的少
我们现在启动Zookeeper并查看状态:

提示我们Zookeeper已启动,但是根据zoo.conf中的配置,Zookeeper还不能提供相关的服务,这个是因为我们才安装部署完成了一台,另外两台没有部署,而我们配置了3个节点,就相当于两个节点故障,从而Zookeeper就不会提供相关服务了。
接着我们安装上面的步骤部署另外两台,并将另外两台启动后,在查看状态:
节点1(192.168.209.133 test1)

节点2(192.168.209.134 test2)

节点3(192.168.209.135 test3)

从上面输出的结果可以看到,第二个节点已经被选举为Leader,其他两个则是Follower
Zookeeper安装好之后,建议将它加到开机启动项中,或者使用守护进程工具(如supervisor)进行管理。
ZooInspector连接Zookeeper
Zookeeper安装好了,我们可以尝试连接试试,这里使用的是ZooInspector工具,它是使用java开发出来的,因此也需要安装jdk,因为我们是在windows上运行ZooInspector,因此需要安装windows版的jkd,不能使用上面linux版的jdk:
百度云下载:https://pan.baidu.com/s/1TCwep5Y7xnZffsT8WLjJUw (提取码: ixex)
当前,如果你电脑里已经安装好jdk了,这个jdk就没必要了。jdk和ZooInspector下载好之后,解压到某个目录,我这里将它们都解压到D盘


我们可以将jdk配置到环境变量中,如果不配置也是可以的,ZooInspector解压出来的build目录下有个zookeeper-dev-ZooInspector.jar文件,我们打开cmd,进入到zookeeper-dev-ZooInspector.jar文件所在目录,输入
# 这个jdk地址根据自己的目录输入就可以了
D:\jdk1.8.0_25\bin\java.exe -jar zookeeper-dev-ZooInspector.jar

然后就打开了ZooInspector的窗口,点击左上角的开始图标:

其中,Connect String是Zookeeper的集群节点地址,采用ip:端口的方式,这个端口就是在zoo.conf中配置的clientPort参数,另外这里可以连接一个节点,也可以连接多个节点,如果是多个节点,则每个节点之前使用逗号(,)分隔,我们这里是直接连接了三个节点。
点击OK之后,稍等片刻,显示:

Zookeeper基础教程(二):Zookeeper安装的更多相关文章
- Zookeeper基础教程(六):.net core使用Zookeeper
Demo代码已提交到gitee,感兴趣的更有可以直接克隆使用,地址:https://gitee.com/shanfeng1000/dotnetcore-demo/tree/master/Zookeep ...
- Zookeeper 系列(二)安装配制
Zookeeper 系列(二)安装配制 一.Zookeeper 的搭建方式 Zookeeper 安装方式有三种,单机模式和集群模式以及伪集群模式. 单机模式 :Zookeeper 只运行在一台服务器上 ...
- Zookeeper基础教程(五):C#实现Zookeeper分布式锁
分布式锁 互联网初期,我们系统一般都是单点部署,也就是在一台服务器完成系统的部署,后期随着用户量的增加,服务器的压力也越来越大,响应速度越来越慢,甚至出现服务器崩溃的情况. 为解决服务器压力太大,响应 ...
- zookeeper基础教程
一.关于zookeeper Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储, Zookeeper 作用 ...
- Zookeeper基础教程(四):C#连接使用Zookeeper
Zookeeper作为分布式的服务框架,虽然是java写的,但是强大的C#也可以连接使用. C#要连接使用Zookeeper,需要借助第三方插件,而现在主要有两个插件可供使用,分别是ZooKeeper ...
- Zookeeper基础教程(三):Zookeeper连接使用—zkCli
上一篇介绍Zookeeper的安装,并介绍了使用ZooInspector连接Zookeeper,这里主要介绍以命令行的形式介绍Zookeeper 假如我们已经安装了Zookeeper集群,集群中的安装 ...
- Python 3基础教程1-环境安装和运行环境
本系列开始介绍Python3的基础教程,为什么要选中Python 3呢?之前呢,学Python 2,看过笨方法学Python,学了不到一个礼拜,就开始用Python写Selenium脚本.最近看到一些 ...
- zookeeper系列之二—zookeeper历史
Zookeeper是什么? Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby的一个开源版本.它是为分布式应用提供一致性服务的软件,提供的功能包括:配置服 ...
- Git 基础教程 之 Git 安装 (windows)
一,安装Git,访问下面网址进行下载 https://www.git-scm.com/download/ 或者 https://pan.baidu.com/s/19imFBVHA2Yibmw1dyza ...
随机推荐
- Linux:expr、let、for、while、until、shift、if、case、break、continue、函数、select
1.expr计算整数变量值 格式 :expr arg 例子:计算(2+3)×4的值 1.分步计算,即先计算2+3,再对其和乘4 s=`expr 2 + 3` expr $s \* 4 2.一步完成计算 ...
- 【Linux】【Services】【Disks】bftfs
1. 简介 1.1 Btrfs(B-tree,Butter FS,Better FS) 1.2. 遵循GPL,由oracle在2007年研发,支持CoW 1.3. 主要为了替代早期的ext3/ext4 ...
- 『与善仁』Appium基础 — 24、等待activity出现
目录 1.什么是等待activity出现 2.wait_activity()方法 3.获取当前页面的activity方法 4.综合练习 1.什么是等待activity出现 在启动APP的时候,要配置包 ...
- Redis集群环境各节点无法互相发现与Hash槽分配异常 CLUSTERDOWN Hash slot not served的解决方式
总结/朱季谦 在搭建Redis5.x版本的集群环境曾出现各节点无法互相发现与Hash槽分配异常 CLUSTERDOWN Hash slot not served的情况,故而把解决方式记录下来. 在以下 ...
- Identity Server 4 从入门到落地(十二)—— 使用Nginx集成认证服务
前面的部分: Identity Server 4 从入门到落地(一)-- 从IdentityServer4.Admin开始 Identity Server 4 从入门到落地(二)-- 理解授权码模式 ...
- HyperSnips:VSCode上的自动补全神器
发现一个小众但是巨好用的VSCode自动补全插件:HyperSnips. 作者显然受到了 这位小哥 的启发,将 Vim Ultisnips 的大部分功能搬到了VSCode上.并用 JavaScript ...
- [BUUCTF]REVERSE——reverse3
reverse3 附件 步骤: 例行查壳儿,32位程序,无壳儿 32位ida载入,shift+f12检索程序里的字符串,得到了有关flag的提示,而且看到了ABCDE--78这种字符串,猜测存在bas ...
- LuoguP7713 「EZEC-10」打分 题解
Content 某个人去参加比赛,\(n\) 个评委分别给他打分 \(a_1,a_2,\dots,a_n\).这个人可以最多执行 \(m\) 次操作,每次操作将一个评委的分数加 \(1\).定义他的最 ...
- signal 信号
python学习笔记--信号模块signal 阅读目录(Content) 1 signal基本信号名 2 常用信号处理函数 2.1 设置发送SIGALRM信号的定时器 2.2 设置信号处理函数 3 常 ...
- CentOS系统 python3+python2 & Ipython安装
https://www.cnblogs.com/albertrui/p/8093384.html 一.安装依赖环境 输入命令: yum -y install zlib-devel bzip2-deve ...