前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ZooKeeper的安装

ZooKeeper的安装

作者头像
云叶知秋
发布2021-02-25 17:14:30
5630
发布2021-02-25 17:14:30
举报
文章被收录于专栏:Unity3D学习笔记Unity3D学习笔记

一、下载安装包

  访问zookeeper的官网下载地址,我这里下载的时候最新版本是3.6.2,大家也可以通过点击下面的超链接去下载。 zookeeper 3.6.2

二、安装

1、环境准备

  ZooKeeper的运行需要依赖于JDK环境,所以我们需要先安装JDK,本人安装的是JDK1.8,至于如何安装,请自行百度,这里默认大家已经具备这个技能了。   接下来就是ZooKeeper软件,本人使用的是3.6.2版本   现将我本机上传后的软件截图如下,下图中红色的两个文件就是jdk和zookeeper的安装软件

在这里插入图片描述
在这里插入图片描述

2、上传安装包到服务器

  至于上传安装包到服务器上有多种方式,本人使用xftp工具上传到服务器上,大家也可以使用rz命令进行安装包的上传,如果还未安装rz的同学可以通过yum源来进行rz安装,具体安装命令如下:

代码语言:javascript
复制
yum -y install lrzsz

执行完上述的安装命令后效果如下:

安装rz和sz工具
安装rz和sz工具

安装完成后,在命令行输入rz,会弹出文件选择框,如下图所示:

在这里插入图片描述
在这里插入图片描述

3、解压缩安装包

执行如下命令解压jdk安装包

代码语言:javascript
复制
tar -zxvf jdk-8u121-linux-x64.tar.gz

执行如下命令解压zookeeper安装包

代码语言:javascript
复制
tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz

三、配置

1、配置环境变量

配置JAVA_HOME环境变量,执行如下脚本,打开.bash_profile文件

代码语言:javascript
复制
cd    #执行该命令是为了让控制台跳转到用户的家目录,也可以使用cd ~是同样的效果
vi .bash_profile

打开.bash_profile文件后,追加如下内容:

代码语言:javascript
复制
export JAVA_HOME=/root/jdk1.8.0_121     #添加JAVA_HOME环境变量
export PATH=$PATH:$JAVA_HOME/bin        #添加Java的bin目录到PATH环境变量中

追加后的效果如下图所示:

在这里插入图片描述
在这里插入图片描述

配置完成后执行如下命令生效

代码语言:javascript
复制
source .bash_profile

接下来按同样的方法配置ZOOKEEPER_HOME环境变量,这里就不再做详细的描述,直接把配置好的文件内容展示如下:

代码语言:javascript
复制
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
export KUBECONFIG=/etc/kubernetes/admin.conf

export JAVA_HOME=/root/jdk1.8.0_121
export PATH=$PATH:$JAVA_HOME/bin

export ZOOKEEPER_HOME=/root/apache-zookeeper-3.6.2-bin
export PATH=$PATH:$ZOOKEEPER_HOME/bin

2、配置软件运行服务器列表

进入zookeeper解压目录下的conf目录

代码语言:javascript
复制
cd $ZOOKEEPER/conf

我们可以看到3个文件,其中有个zoo_sample.cfg文件,这是官方提供的配置样例文件,我们把这个拷贝一份重新命名为zoo.cfg

代码语言:javascript
复制
cp zoo_sample.cfg zoo.cfg

然后我们打开zoo.cfg进行配置文件的修改

代码语言:javascript
复制
vi zoo.cfg

打开后的zoo.cfg文件内容显示如下:

代码语言:javascript
复制
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/zookeeper
clientPort=2181

配置文件详解:

配置项

默认值

配置描述

tickTime

2000

Zookeeper服务器之间或客户端之间维持心跳的时间间隔,单位是毫秒

initLimit

10

Zookeeper 接受客户端初始化连接时最长能忍受多少个心跳时间间隔(当已经超过 10 个心跳的时间也就是(ticktime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败,总的时间长度就是:10*2000 = 20s)

syncLimit

5

这个配置项表示Leader与Follower之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是:5*2000 = 10s

dataDir

/tmp/zookeeper

官方默认是在临时路径下,所以必须要更改到其他目录下,如:/var/zookeeper

clientPort

2181

这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求

至此只完成了ZooKeeper的默认配置的调整,我们要运行ZooKeeper,需要确定运行机器的台数,本人这里使用三台机器,所以需要在zoo.cfg配置文件底部增加三台服务器的配置,配置格式为

代码语言:javascript
复制
server.序号=IP:内部同步端口:选举端口

示例如下:

代码语言:javascript
复制
server.1=192.168.100.6:2888:3888
server.2=192.168.100.7:2888:3888
server.3=192.168.100.8:2888:3888

3、配置数据目录

  根据上一节的配置项dataDir的值,我们创建对应的目录,本人这里配置的是/var/zookeeper,所以就在/var目录下创建一个zookeeper目录

代码语言:javascript
复制
mkdir -p /var/zookeeper

4、配置myid

  zookeeper需要给每台运行的机器一个自身的标识号,所以在配置项dataDir目录下创建一个myid文件,里面只需写上给当前机器的编号即可,这个编号值来源与zoo.cfg文件中配置的内容,如192.168.100.6是属于server.1的配置项的,所以192.168.100.6的myid的内容需要配置为1,这里我截一下我本机的图片好加强一下理解:

在这里插入图片描述
在这里插入图片描述

四、运行

  ZooKeeper的运行方式有多种,我们可以通过运行zkServer.sh来进行查看

代码语言:javascript
复制
zkServer.sh

输出

代码语言:javascript
复制
ZooKeeper JMX enabled by default
Using config: /root/apache-zookeeper-3.6.2-bin/bin/../conf/zoo.cfg
Usage: /root/apache-zookeeper-3.6.2-bin/bin/zkServer.sh [--config <conf-dir>] {start|start-foreground|stop|version|restart|status|print-cmd}

我们可以看到选项有start|start-foreground|stop|version|restart|status|print-cmd这些,我们先按前台启动方式(start-foreground)运行一下zookeeper,这样好观察一下zookeeper的日志输出

按照规划的3台服务器,我们先从192.168.100.6开始启动,进入$ZOOKEEPER_HOME/bin目录下,输入命令:

代码语言:javascript
复制
zkServer.sh start-foreground

运行结果如下:

在这里插入图片描述
在这里插入图片描述

会有类似这样的报错,这是正常的,我们当初配置了3台服务器,目前才启动了一台,这些异常是无法连接另外两台而抛出的异常,把另外两台启动后这些异常就消失了。 接下来我们启动192.168.100.7服务器上的zookeeper,结果如下:

在这里插入图片描述
在这里插入图片描述

上图也出现了类似的异常,是无法连接第三台服务器导致的

在这里插入图片描述
在这里插入图片描述

另外,我们也可以看到服务已经正常启动了,图中红色框选的内容描述的是192.168.100.7服务器上的zookeeper被选为了Leader角色,192.168.100.6服务器上的zookeeper则作为Follower角色,目前192.168.100.8还未启动,但是zookeeper却已经能正常提供服务了,这是因为zookeeper内部采用过半通过的原则,总共3台服务器,启动了2台,系统则认为服务已经是OK的了,可以对外正常提供服务了,接下来我们还是把192.168.100.8上的zookeeper服务也启动起来,启动结果如下:

在这里插入图片描述
在这里插入图片描述

没有任何错误,到此zookeeper就全部启动完成了。

五、测试

  运行完成后接下来就是检查运行情况了,我们这里就检查下各个服务器的角色吧,分别在192.168.100.6服务器上运行如下脚本:

代码语言:javascript
复制
zkServer.sh status

运行结果如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

由上面的三张图可以看出,192.168.100.7的角色是Leader,其他都是Follower。 最后,我们在三台服务器中的任意一台上运行zkCli.sh看看是否能成功连接ZooKeeper,运行结果如下:

在这里插入图片描述
在这里插入图片描述

当看到Welcome to ZooKeeper就说明连接成功了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-02-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、下载安装包
  • 二、安装
    • 1、环境准备
      • 2、上传安装包到服务器
        • 3、解压缩安装包
        • 三、配置
          • 1、配置环境变量
            • 2、配置软件运行服务器列表
              • 3、配置数据目录
                • 4、配置myid
                • 四、运行
                • 五、测试
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档