2025年2月24日 星期一 甲辰(龙)年 腊月廿四 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 云技术 > 大数据

zookeeper安装教程(zookeeper3.4.5为例)

时间:06-18来源:作者:点击数:55

zookeeper有单机、伪集群、集群三种部署方式,可根据自己对可靠性的需求选择合适的部署方式。下边对这三种部署方式逐一进行讲解。

一、单机安装

1.1 下载

进入要下载的版本的目录,选择.tar.gz文件下载

下载链接:http://archive.apache.org/dist/zookeeper/

1.2 安装

使用tar解压要安装的目录即可,以3.4.5版本为例

这里以解压到/usr/myapp,实际安装根据自己的想安装的目录修改(注意如果修改,那后边的命令和配置文件中的路径都要相应修改)

  • tar -zxf zookeeper-3.4.5.tar.gz -C /usr/myapp
1.3 配置

在主目录下创建data和logs两个目录用于存储数据和日志:

  • cd /usr/myapp/zookeeper-3.4.5
  • mkdir data
  • mkdir logs

在conf目录下新建zoo.cfg文件,写入以下内容保存:

  • tickTime=2000
  • dataDir=/usr/myapp/zookeeper-3.4.5/data
  • dataLogDir=/usr/myapp/zookeeper-3.4.5/logs
  • clientPort=2181
1.4 启动和停止

进入bin目录,启动、停止、重启分和查看当前节点状态(包括集群中是何角色)别执行:

  • ./zkServer.sh start
  • ./zkServer.sh stop
  • ./zkServer.sh restart
  • ./zkServer.sh status

二、伪集群模式

伪集群模式就是在同一主机启动多个zookeeper并组成集群,下边以在192.168.220.128主机上创3个zookeeper组集群为例。

将通过第一大点安装的zookeeper,复制成zookeeper1/zookeeper2/zookeeper3三份

2.1 zookeeper1配置

zookeeper1配置文件conf/zoo.cfg修改如下:

  • tickTime=2000
  • dataDir=/usr/myapp/zookeeper1/data
  • dataLogDir=/usr/myapp/zookeeper1/logs
  • clientPort=2181
  • initLimit=5
  • syncLimit=2
  • server.1=192.168.220.128:2888:3888
  • server.2=192.168.220.128:4888:5888
  • server.3=192.168.220.128:6888:7888

zookeeper1的data/myid配置如下:

  • echo '1' > data/myid
2.2 zookeeper2配置

zookeeper2配置文件conf/zoo.cfg修改如下:

  • tickTime=2000
  • dataDir=/usr/myapp/zookeeper2/data
  • dataLogDir=/usr/myapp/zookeeper2/logs
  • clientPort=3181
  • initLimit=5
  • syncLimit=2
  • server.1=192.168.220.128:2888:3888
  • server.2=192.168.220.128:4888:5888
  • server.3=192.168.220.128:6888:7888

zookeeper2的data/myid配置如下:

  • echo '2' > data/myid
2.3 zookeeper3配置

zookeeper3配置文件conf/zoo.cfg修改如下:

  • tickTime=2000
  • dataDir=/usr/myapp/zookeeper3/data
  • dataLogDir=/usr/myapp/zookeeper3/logs
  • clientPort=4181
  • initLimit=5
  • syncLimit=2
  • server.1=192.168.220.128:2888:3888
  • server.2=192.168.220.128:4888:5888
  • server.3=192.168.220.128:6888:7888

zookeeper3的data/myid配置如下:

  • echo '3' > data/myid

最后使用1.4的命令把三个zookeeper都启动即可,启动顺序随意没要求。

三、集群模式

集群模式就是在不同主机上安装zookeeper然后组成集群的模式;下边以在192.168.220.128/129/130三台主机为例。

将第1.1到1.3步中安装好的zookeeper打包复制到129和130上,并都解压到同样的目录下。

3.1 conf/zoo.cfg文件修改

三个zookeeper的conf/zoo.cfg修改如下:

  • tickTime=2000
  • dataDir=/usr/myapp/zookeeper-3.4.5/data
  • dataLogDir=/usr/myapp/zookeeper-3.4.5/logs
  • clientPort=2181
  • initLimit=5
  • syncLimit=2
  • server.1=192.168.220.128:2888:3888
  • server.2=192.168.220.129:2888:3888
  • server.3=192.168.220.130:2888:3888

对于129和130,由于安装目录都是zookeeper-3.4.5所以dataDir和dataLogDir不需要改变,又由于在不同机器上所以clientPort也不需要改变

所以此时129和130的conf/zoo.cfg的内容与128一样即可。

3.2 data/myid文件修改

128 data/myid修改如下:

  • echo '1' > data/myid

129 data/myid修改如下:

  • echo '2' > data/myid

130 data/myid修改如下:

  • echo '3' > data/myid

最后使用1.4的命令把三个zookeeper都启动即可,启动顺序随意没要求。

四、基本命令使用

以下命令不管是单机、伪集群、集群模式都适用;伪集群和集群模式随便连接其中一个zookeeper即可。

进入zookeeper的bin目录,使用zkCli连接zookeeper:

  • ./zkCli.sh
  • # 默认连接localhost:2181,如需指定ip和端口可使用如下形式
  • # ./zkCli.sh -server 192.168.220.128:2181

以下是zkCli中的简单命令使用示例,总的而言zookeeper的组织结构类似于linux的目录结构:

  • # 查看所有支持的命令。其实输入任一条不支持的命令都会打印帮助
  • help
  • # 查看目录下有哪些节点。以根目录为例
  • ls /
  • # 创建一个节点。
  • # 加-s表示创建顺序节点,即会自动在给定的路径后面再加上一个数字串,保证路径不重复。
  • # 默认是持久节点,加-e是临时节点
  • create /example_path "example_data"
  • # 查看节点内容
  • # 返回第一行即是节点的内容,如果第一行空白或null那就说明该节点创建时就没有值
  • # 后续的cZxid到numChildren都是该节点的一些属性信息;其中numChildren标识该节点下有多少个子节点
  • get /example_path
  • # 删除一个没有子节点的节点
  • delete /example_path
  • # 递规删除节点及其所有子节点
  • rmr /example_path
  • # 退出zkCli
  • quit

五、报错及处理

应用连接zookeepr报错:Session 0x0 for server 192.168.220.128/192.168.220.128:2181,unexpected error,closing socket connection and attempting reconnect;

先看端口能否telnet通,如果通则使用./zkServer.sh status查看zk是否确实已启动,没启查看bin/zookeeper.out中的报错。

bin/zookeeper.out中报错:“zookeeper address already in use”;显然端口被占用,要么是其他进程占用了配置的端口,要么是上边配置的clientPort和server中的端口有重复。

bin/zookeeper.out中报错:Cannot open channel to 2 at election address /192.168.220.130:3888;这应该只是组成集群的130节点未启动,到130启动起来zk即会正常。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门