zookeeper-3.4.10伪集群模式搭建及简单操作

    技术2022-07-11  101

    文章目录

    1.环境准备2.配置2.1 zoo.cfg配置文件2.2 myid配置文件2.3 日志路径配置 3.启动4.客户端连接4.1 create4.2 ls4.3 get4.4 set4.5 delete 在学习zookeeper的过程中,常常受制于环境限制,没有足够多的硬件资源以供自己玩耍,通常情况下只有自己的16G内存的笔记本,因此,在这种情况下,我们需要通过搭建伪集群环境来体验zookeeper的集群模式。

    1.环境准备

    操作系统: fedora25 硬件配置: thinkpad X230 i5 16G 500G 依赖软件: jdk 1.8.0_121 (官方版本,非openjdk) 下载: zookeeper-3.4.10.tar.gz cd /opt wget http://www-us.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz 安装目录:/opt/zookeeper mkdir /opt/zookeeper cd /opt/zookeeper tar -zxvf /opt/zookeeper-3.4.10.tar.gz cp -rf /opt/zookeeper/zookeeper-3.4.10 /opt/zookeeper/zoo-node1 cp -rf /opt/zookeeper/zookeeper-3.4.10 /opt/zookeeper/zoo-node2 cp -rf /opt/zookeeper/zookeeper-3.4.10 /opt/zookeeper/zoo-node3 rm -rf /opt/zookeeper/zookeeper-3.4.10 这样,zookeeper的三个节点运行目录分别为: /opt/zookeeper/zoo-node1 /opt/zookeeper/zoo-node2 /opt/zookeeper/zoo-node3

    2.配置

    2.1 zoo.cfg配置文件

    zookeeper的运行,需要在conf目录配置zoo.cfg文件。我们可以参考zoo_sample.cfg进行配置。 节点1配置如下:

    #zookeeper时间单元,单位为毫秒 tickTime=2000 #集群中的follower服务器(F)与leader服务器(L)之间 初始连接 时能容忍的最多心跳数(tickTime的数量)。 initLimit=10 # 集群中的follower服务器(F)与leader服务器(L)之间 请求和应答 之间能容忍的最多心跳数(tickTime的数量)。 syncLimit=5 # data数据目录 dataDir=/opt/zookeeper/zoo-node1/data # 客户端连接端口 clientPort=2181 # 客户端最大连接数 #maxClientCnxns=60 # 需要保留的快照数目 #autopurge.snapRetainCount=3 # 是否开启自动清理事务日志和快照功能 0 不开启,1表示开启 #autopurge.purgeInterval=1 #集群配置 server.1=127.0.0.1:2888:3888 server.2=127.0.0.1:2889:3889 server.3=127.0.0.1:2890:3890

    节点2配置

    #zookeeper时间单元,单位为毫秒 tickTime=2000 #集群中的follower服务器(F)与leader服务器(L)之间 初始连接 时能容忍的最多心跳数(tickTime的数量)。 initLimit=10 # 集群中的follower服务器(F)与leader服务器(L)之间 请求和应答 之间能容忍的最多心跳数(tickTime的数量)。 syncLimit=5 # data数据目录 dataDir=/opt/zookeeper/zoo-node2/data # 客户端连接端口 clientPort=2182 # 客户端最大连接数 #maxClientCnxns=60 # 需要保留的快照数目 #autopurge.snapRetainCount=3 # 是否开启自动清理事务日志和快照功能 0 不开启,1表示开启 #autopurge.purgeInterval=1 #集群配置 server.1=127.0.0.1:2888:3888 server.2=127.0.0.1:2889:3889 server.3=127.0.0.1:2890:3890

    节点3配置

    #zookeeper时间单元,单位为毫秒 tickTime=2000 #集群中的follower服务器(F)与leader服务器(L)之间 初始连接 时能容忍的最多心跳数(tickTime的数量)。 initLimit=10 # 集群中的follower服务器(F)与leader服务器(L)之间 请求和应答 之间能容忍的最多心跳数(tickTime的数量)。 syncLimit=5 # data数据目录 dataDir=/opt/zookeeper/zoo-node3/data # 客户端连接端口 clientPort=2183 # 客户端最大连接数 #maxClientCnxns=60 # 需要保留的快照数目 #autopurge.snapRetainCount=3 # 是否开启自动清理事务日志和快照功能 0 不开启,1表示开启 #autopurge.purgeInterval=1 #集群配置 server.1=127.0.0.1:2888:3888 server.2=127.0.0.1:2889:3889 server.3=127.0.0.1:2890:3890

    分别将上述配置文件放置在三个节点对应的conf目录下。 另外,需要新建data目录

    mkdir /opt/zookeeper/zoo-node1/data mkdir /opt/zookeeper/zoo-node2/data mkdir /opt/zookeeper/zoo-node3/data

    2.2 myid配置文件

    zookeeper还需要在data目录中配置myid文件。myid文件中存放对应节点的序号。

    echo '1' > /opt/zookeeper/zoo-node1/data/myid echo '2' > /opt/zookeeper/zoo-node2/data/myid echo '3' > /opt/zookeeper/zoo-node3/data/myid

    2.3 日志路径配置

    修改 bin 目录下的zkEnv.sh 将ZOO_LOG_DIR 修改为:

    ZOO_LOG_DIR="../logs/"

    按上述方法分别修改三个节点中的zkEnv.sh文件

    3.启动

    /opt/zookeeper/zoo-node1/bin/zkServer.sh start /opt/zookeeper/zoo-node2/bin/zkServer.sh start /opt/zookeeper/zoo-node2/bin/zkServer.sh start

    如此分别启动三个节点即可。 启动效果如下:

    [root@localhost bin]# /opt/zookeeper/zoo-node1/bin/zkServer.sh start ZooKeeper JMX enabled by default Using config: /opt/zookeeper/zoo-node1/bin/../conf/zoo.cfg Starting zookeeper ... STARTED

    查看日志:

    4.客户端连接

    运行 zkCli.sh 连接到默认的端口

    4.1 create

    使用create 可以创建一个zookeeper节点。

    命令格式 create [-s] [-e] path data acl create /zk-book 123

    4.2 ls

    列出zookeeper指定节点下的所有子节点。

    命令格式 ls path [watch] ls /

    4.3 get

    get 可以获取zookeeper指定节点的数据内容和属性信息。

    get path [watch] get /zk-book

    4.4 set

    更新指定节点的数据内容

    set path data [vresion] set /zk-book 456

    4.5 delete

    delete 删除zookeeper上指定节点内容

    delete path [version] delete /zk-book

    不过需要注意的是,删除的节点必须为空,否则无法删除。

    create /zk-book 123 create /zk-book/child 12345 delete /zk-book

    Processed: 0.012, SQL: 9