Linux Centos7 Zookeeper安转(集群)

Zookeeper安装(集群)

以三个虚拟机为例创建集群
Zookeeper集群节点数量要是奇数

准备工作

  1. 修改主机名hostname
  2. 修改IP地址
  3. 修改hosts映射
  4. 关闭防火墙
  5. 免密登录(非对称单向登录)
  6. jdk安转

Zookeeper安装(单个节点配置)

上传Zookeeper.tar.gz 到Linux(推荐使用Xftp 4)

解压到/export/server (自定义目录方便查找)

  1. 对解压后的文件进行改名 去除版本号(方便使用)

修改zookeeper文件中的zoo_sample.cfg为 zoo.cfg(方便使用)

环境变量配置

编辑 .bashrc 文件, 在文件末尾添加以下环境变量配置:
ZooKeeper Env
export ZOOKEEPER_HOME=/opt/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

配置zoo.cfg(重点)

  1. dataDir配置路径进行修改

    1. 该配置项用于配置zookeeper快照日志和事务日志的存储地址
    2. /export/data/zkdata (自定义路径)
  2. 在文件末尾添加 server.id=host:port:port

    1. 示例
      server.1=master:2888:3888
      server.2=slave01:2888:3888
      server.3=slave02:2888:3888
      
    2. Server ID, 用来标识服务器在集群中的序号
      ZooKeeper 集群中, 每台服务器上的 zoo.cfg 配置文件内容一致。

  3. 创建myid文件(识别服务器)

    1. echo 1 > /export/data/zkdata/myid
    2. 也可以使用vim 进行修改

如下

# 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=/export/data/zkdata
# 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
server.1=master:2888:3888
server.2=slave01:2888:3888
server.3=slave02:2888:3888

剩余节点配置

最后将修改好的zookeeper文件 使用 scp命令复制到剩下两个节点中
在/export/server路径下执行

  • scp -r zookeeper/ root@node2:$PWD
  • 或者 scp -r zookeeper/ root@node2:/export/server

修改myid

  • echo 2 > /export/data/zkdata/myid
  • echo 3 > /export/data/zkdata/myid

初次写,如有错误,还请指正

### 如何在 CentOS 7 上部署 Zookeeper 集群 #### 准备工作 为了成功装并配置 Zookeeper 集群,在每台机器上都需要完成一些准备工作。确保所有节点的操作系统均为 CentOS 7 并已更新至最新版本。 #### Java 环境 由于 Zookeeper 是基于 Java 的应用程序,因此需要先装 JDK 或 JRE。可以使用如下命令来装 OpenJDK: ```bash sudo yum install java-1.8.0-openjdk-devel.x86_64 -y ``` 验证装是否成功的命令为 `java -version`[^2]。 #### 下载与解压 Zookeeper 前往官方下载页面获取最新的稳定版 Zookeeper 发行包,并将其上传到各服务器上的相同路径下;也可以通过 wget 工具直接在线下载。接着执行 tar 解压缩操作: ```bash tar zxvf apache-zookeeper*.tar.gz && mv zookeeper-* /usr/local/zookeeper ``` 设置环境变量以便于全局调用 Zookeeper 脚本工具: ```bash echo 'export ZOOKEEPER_HOME=/usr/local/zookeeper' >> ~/.bashrc echo 'export PATH=$PATH:$ZOOKEEPER_HOME/bin' >> ~/.bashrc source ~/.bashrc ``` #### 创建数据文件夹和日志文件夹 创建专门用于存储持久化状态以及事务日志的数据目录 `/data/zkData` 和日志目录 `/logs/zkLogs`: ```bash mkdir -p /data/zkData /logs/zkLogs chown -R zkUser:zkGroup /data/zkData /logs/zkLogs ``` 这里假设已经有一个名为 `zkUser` 用户及其所属组 `zkGroup` 存在于系统之中。 #### 修改配置文件 编辑位于 `$ZOOKEEPER_HOME/conf/` 文件夹下的 `zoo.cfg` 文件,添加必要的参数定义集群成员信息和其他选项。对于三节点组成的集群而言,至少要指定三个 server ID 及其对应的 IP 地址端口映射关系。例如: ```properties tickTime=2000 initLimit=10 syncLimit=5 dataDir=/data/zkData clientPort=2181 server.1=znode1:2888:3888 server.2=znode2:2888:3888 server.3=znode3:2888:3888 ``` 其中 clientPort 表示客户端连接使用的默认端口号,默认情况下是 2181。而后面的 server.X 则表示第 X 个 Server 的地址及选举通信所用的两个不同端口 (follower/follower, leader/election)。 #### 设置 myid 文件 每个 Zookeeper 实例都必须知道自己在整个集群中的唯一身份编号(即上述配置里的 .X)。为此需分别向各个实例对应的数据目录内写入一个名为 "myid" 的纯文本文件,里面仅包含该实例的身份号码即可。比如针对上面的例子来说,则应该这样做: ```bash echo "1" > /data/zkData/myid # 对应 znode1 echo "2" > /data/zkData/myid # 对应 znode2 echo "3" > /data/zkData/myid # 对应 znode3 ``` 注意替换实际存在的主机名或IP地址。 #### 启动服务 当所有的前置条件都已经满足之后就可以依次启动每一个 Zookeeper 进程了。可以通过下面的方式来进行: ```bash $ZOOKEEPER_HOME/bin/zkServer.sh start ``` 确认进程正常运行的方法之一就是查看相应的日志输出或者利用 jps 命令检查是否有 QuorumPeerMain 类型的服务存在。 #### 测试集群功能 最后一步是要测试整个集群能否协同工作。这通常涉及到编写简单的程序去尝试建立会话、创建节点等基本操作来看看返回的结果是不是预期那样。当然也可以借助第三方图形界面管理工具如 ZooInspector 来辅助观察当前集群的状态变化情况。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值