前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >zk | zookeeper单机和集群搭建过程详细步骤

zk | zookeeper单机和集群搭建过程详细步骤

作者头像
码神联盟
发布2019-07-31 10:30:31
1.2K0
发布2019-07-31 10:30:31
举报
文章被收录于专栏:码神联盟码神联盟

单机环境搭建

要求:

  • 依赖Java环境

单机搭建过程:

  • 进入到/opt目录下,创建zookeeper 文件夹
代码语言:javascript
复制
cd   /opt
mkdir zookeeper
  • 进入到zookeeper文件夹下下载zookeeper包
  • 或者手动下载地址:

https://www-eu.apache.org/dist/zookeeper/

代码语言:javascript
复制
cd   zookeeper
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
  • 解压zookeeper-3.4.14.tar.gz文件
代码语言:javascript
复制
 tar -zvxf zookeeper-3.4.14.tar.gz
  • 进入配置文件目录
  • 重命名zoo_sample.cfg配置文件

zoo_sample.cfg 这个文件是官方给我们的zookeeper的样板文件,给他复制一份命名为zoo.cfg,zoo.cfg是官方指定的文件命名规则

代码语言:javascript
复制
cp zoo_sample.cfg zoo.cfg
  • 进入到/opt/zookeeper/zookeeper-3.4.14目录下新建data和logs两个文件夹
代码语言:javascript
复制
cd   /opt/zookeeper/zookeeper-3.4.14
mkdir data
mkdir logs
  • 修改zoo.cfg 配置文件
代码语言:javascript
复制
cd conf
vi zoo.cfg
#输入以下内容:
dataDir=/opt/zookeeper/zookeeper-3.4.14/data
dataLogDir=/opt/zookeeper/zookeeper-3.4.14/logs
#退出并保存
先按ESC键,输入:wq!回车
  • 进入到bin目录,启动zookeeper
代码语言:javascript
复制
./zkServer.sh start
  • 利用 ./zkServer.sh status 查看当前zookeeper的状态
代码语言:javascript
复制
./zkServer.sh status
  • 至此,zookeeper的单机版搭建成功。

设置开机启动

  • 进入到 /etc/rc.d/init.d 目录下 ,新建一个名为 zookeeper 的文件
代码语言:javascript
复制
cd   /etc/rc.d/init.d 
mkdir zookeeper
touch zookeeper
  • 编辑zookeeper文件,把文件修改为 :
代码语言:javascript
复制
vi zookeeper
# 内容如下:
#!/bin/bash  
#chkconfig: 2345 10 90  
#description: service zookeeper  
export  JAVA_HOME=/opt/java8/jdk1.8.0_171  
export  ZOO_LOG_DIR=/opt/zookeeper/zookeeper-3.4.14/logs 
ZOOKEEPER_HOME=/opt/zookeeper/zookeeper-3.4.14  
su    root    ${ZOOKEEPER_HOME}/bin/zkServer.sh      "$1"
  • 退出并保存 ,为新建的/etc/rc.d/init.d/zookeeper文件添加可执行权限
代码语言:javascript
复制
chmod  +x  /etc/rc.d/init.d/zookeeper
  • 把zookeeper这个脚本添加到开机启动项里面
代码语言:javascript
复制
chkconfig  --add  zookeeper
  • 最后重启linux
代码语言:javascript
复制
reboot
  • 重启之后 ,使用如下命令,查看zookeeper是否启动
代码语言:javascript
复制
service  zookeeper  status

集群环境搭建

下载:

https://www-eu.apache.org/dist/zookeeper/

https://www-eu.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

环境配置:

  • Linux服务器1:192.168.73.181
  • Linux服务器2:192.168.73.182
  • Linux服务器3:192.168.73.183

搭建过程:

  • 进入到opt目录下,新建zookeeper目录,下载zookeeper文件
代码语言:javascript
复制
wget https://www-eu.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
  • 解压zookeeper文件
代码语言:javascript
复制
tar -zvxf zookeeper-3.4.14.tar.gz
  • 重命名zoo_sample.cfg配置文件
代码语言:javascript
复制
cp zoo_sample.cfg zoo.cfg
  • 进入到/opt/zookeeper/zookeeper-3.4.14目录下新建data和logs两个文件夹
代码语言:javascript
复制
cd /opt/zookeeper/zookeeper-3.4.14
mkdir data
mkdir logs
  • 复制并修改zookeeper配置文件
代码语言:javascript
复制
cd conf
vi zoo.cfg
#输入以下内容:
dataDir=/opt/zookeeper/zookeeper-3.4.14/data
dataLogDir=/opt/zookeeper/zookeeper-3.4.14/logs

增加如下配置:
server.1=192.168.73.181:2888:3888
server.2=192.168.73.182:2888:3888
server.3=192.168.73.183:2888:3888

解读:
Server.A=B:C:D
A 是一个数字,表示这个是第几号服务器
B 是这个服务器的 ip 地址
C 是这个服务器与集群中的 Leader 服务器交换信息的端口
D 是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口

#退出并保存
先按ESC键,输入:wq!回车
  • 集群模式下配置一个文件 myid,这个文件在 data目录下,这个文件里面有一个数据就是 A 的值,Zookeeper 启动时读取此文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是哪个 server
  • 切换到data目录下,创建一个 myid 的文件
代码语言:javascript
复制
touch myid
文件中添加与 server 对应的编号:如 2
  • 其他服务器同上操作
  • 分别启动zookeeper
代码语言:javascript
复制
./zkServer.sh start
  • 开启端口号
代码语言:javascript
复制
/sbin/iptables -I INPUT -p tcp --dport 2888  -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 3888  -j ACCEPT
  • 分别查看zookeeper集群状态
代码语言:javascript
复制
./zkServer.sh status
  • 登录zookeeper客户端
代码语言:javascript
复制
./zkCli.sh

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码上有猿 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档