• Zookeeper集群安装(CentOS 7环境下)


    一、环境操作系统和软件版本介绍

    1.环境操作系统为CentOS Linux release 7.2.1511 (Core)

    可用cat /etc/redhat-release查询

    2.软件版本

    Zookeeper版本为:3.4.9

    注意:请用java –version检查环境有无安装JDK,如显示java版本信息,表示已安装,可以进行以下步骤。如无安装,请自行安装JDK并配置环境变量,再进行以下操作!

    二、详细安装步骤

    1.在zookeeper官网下载压缩包到/data/soft目录,此文下载版本为zookeeper-3.4.9.tar.gz

    2.在/data/app下创建一个叫zkcluster的文件夹

    3.从当前目录/data/soft解压zookeeper到/data/app/zkcluster目录下

    1 [root@centos7 soft]# tar -zxvf zookeeper-3.4.9.tar.gz -C /data/app/zkcluster

    4.把解压的文件名改为3001

    1 [root@centos7 zkcluster]# mv zookeeper-3.4.9 3001

    4.进入到/data/app/zkcluster/3001/conf目录中,复制zoo_sample.cfg文件的并命名为 zoo.cfg

    1 [root@centos7 conf]# cp zoo_sample.cfg zoo.cfg

    6.复制完成后,编辑zoo.cfg文件,用vi打开

    1 [root@centos7 conf]# vi zoo.cfg

    可注释掉原data路径(也可保留),添加新的data、logs路径,修改端口,增加集群实例

    1 #dataDir=/tmp/zookeeper
    2 dataDir=/data/app/zkcluster/3001/data
    3 dataLogDir=/data/app/zkcluster/3001/logs
    4 clientPort=3001
    5 server.1=192.168.1.18:2888:3888
    6 server.2=192.168.1.18:2889:3889
    7 server.3=192.168.1.18:2890:3890

    7.添加完成后用:wq命令保存并关闭 zoo.cfg 文件

    8.其他两台服务器上的zk同上,先修改文件夹名称(在此文另外两个文件夹名称为3002和3003)

     

    再进入conf目录,复制zoo_sample.cfg文件的并命名为zoo.cfg,再进行修改:

    1 #dataDir=/tmp/zookeeper
    2 dataDir=/data/app/zkcluster/3002/data
    3 dataLogDir=/data/app/zkcluster/3002/logs
    4 clientPort=3002
    5 server.1=192.168.1.18:2888:3888
    6 server.2=192.168.1.18:2889:3889
    7 server.3=192.168.1.18:2890:3890
    1 #dataDir=/tmp/zookeeper
    2 dataDir=/data/app/zkcluster/3003/data
    3 dataLogDir=/data/app/zkcluster/3003/logs
    4 clientPort=3003
    5 server.1=192.168.1.18:2888:3888
    6 server.2=192.168.1.18:2889:3889
    7 server.3=192.168.1.18:2890:3890

    9.进入/data/app/zkcluster/3001/data目录,新增一个myid文件,内容填写1。3002文件夹中myid为2,3003中myid为3

    1 [root@centos7 data]# vi myid

    三、启动&验证:

    1.在/data/app/zkcluster/3001/bin下启动ZK。3002和3003相同。

    1 [root@centos7 bin]# ./zkServer.sh start

    2.三台服务器启动后,分别查看状态:

    1 [root@centos7 bin]# ./zkServer.sh status
    2 ZooKeeper JMX enabled by default
    3 Using config: /data/app/zkcluster/3001/bin/../conf/zoo.cfg
    4 Mode: follower
    5 [root@centos7 bin]# pwd
    6 /data/app/zkcluster/3001/bin

    1 [root@centos7 bin]# ./zkServer.sh status
    2 ZooKeeper JMX enabled by default
    3 Using config: /data/app/zkcluster/3002/bin/../conf/zoo.cfg
    4 Mode: leader

    1 [root@centos7 bin]# ./zkServer.sh status
    2 ZooKeeper JMX enabled by default
    3 Using config: /data/app/zkcluster/3003/bin/../conf/zoo.cfg
    4 Mode: follower

    可见,3002为leader,3001和3003为follower。

    3.通过客户端连接ZooKeeper的集群,我们可以任意的zookeeper是进行连接

    首先连接3002

    1 [root@centos7 bin]# ./zkCli.sh -server 192.168.1.18:3002

    注意:可以用help查看相关命令

    1 [zk: 192.168.1.18:3003(CONNECTED) 11] help

    4.查看现在节点,然后创建节点test,并存储数据

    1 [zk: 192.168.1.18:3002(CONNECTED) 0] ls /
    2 [zookeeper]
    3 [zk: 192.168.1.18:3002(CONNECTED) 1] create /test data
    4 Created /test

    5.使用 connect 命令, 连接到其他 zkServer

    1 [zk: 192.168.1.18:3002(CONNECTED) 2] connect 192.168.1.18:3001

    在3001下,使用 ls path 和 get path 命令, 检测节点和数据是否已同步

     1 [zk: 192.168.1.18:3001(CONNECTED) 3] ls /
     2 [zookeeper, test]
     3 [zk: 192.168.1.18:3001(CONNECTED) 4] get /test
     4 data
     5 cZxid = 0x200000008
     6 ctime = Mon Jan 16 17:20:02 CST 2017
     7 mZxid = 0x200000008
     8 mtime = Mon Jan 16 17:20:02 CST 2017
     9 pZxid = 0x200000008
    10 cversion = 0
    11 dataVersion = 0
    12 aclVersion = 0
    13 ephemeralOwner = 0x0
    14 dataLength = 4
    15 numChildren = 0

    使用 connect 命令, 连接到3002的 zkServer

    在3002下使用 ls path 和 get path 命令, 检测节点和数据是否已同步

     1 [zk: 192.168.1.18:3001(CONNECTED) 5] connect 192.168.1.18:3002
     2 [zk: 192.168.1.18:3002(CONNECTED) 6] ls /
     3 [zookeeper, test]
     4 [zk: 192.168.1.18:3002(CONNECTED) 7] get /test
     5 data
     6 cZxid = 0x200000008
     7 ctime = Mon Jan 16 17:20:02 CST 2017
     8 mZxid = 0x200000008
     9 mtime = Mon Jan 16 17:20:02 CST 2017
    10 pZxid = 0x200000008
    11 cversion = 0
    12 dataVersion = 0
    13 aclVersion = 0
    14 ephemeralOwner = 0x0
    15 dataLength = 4
    16 numChildren = 0

    使用 connect 命令, 连接到3003的 zkServer

    在3003下使用 ls path 和 get path 命令, 检测节点和数据是否已同步

     1 [zk: 192.168.1.18:3002(CONNECTED) 8] connect 192.168.1.18:3003
     2 [zk: 192.168.1.18:3003(CONNECTED) 9] ls /
     3 [zookeeper, test]
     4 [zk: 192.168.1.18:3003(CONNECTED) 10] get /test
     5 data
     6 cZxid = 0x200000008
     7 ctime = Mon Jan 16 17:20:02 CST 2017
     8 mZxid = 0x200000008
     9 mtime = Mon Jan 16 17:20:02 CST 2017
    10 pZxid = 0x200000008
    11 cversion = 0
    12 dataVersion = 0
    13 aclVersion = 0
    14 ephemeralOwner = 0x0
    15 dataLength = 4
    16 numChildren = 0

    验证通过!

  • 相关阅读:
    JAVA写入文本文件
    oracle误删数据闪回
    Myeclipese :Creation of element failed解决方法
    Hibernate的四种状态
    java中list、set和map 的区别<转>
    C#操作mysql中临时表不自动删除
    WPF 实现地图的移动和滚动放大
    c# 将十六进制字符串写入注册表
    ASP.NET 视图状态概述:初步了解
    vs好用插件
  • 原文地址:https://www.cnblogs.com/littlemonsterksn/p/6298756.html
Copyright © 2020-2023  润新知