部署3个节点的Zookeeper伪分布式集群

1、下载

cd /opt
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

2、解压

tar -zxvf zookeeper-3.4.10.tar.gz

3、把解压好的文件夹复制3份,分别为zookeeper1、zookeeper2、zookeeper3,

cp -r zookeeper-3.4.10/ zookeeper/zookeeper1
cp -r zookeeper-3.4.10/ zookeeper/zookeeper2
cp -r zookeeper-3.4.10/ zookeeper/zookeeper3

4、为每个节点建立data、logs目录和myid文件

mkdir -p data/zookeeper1
cd data/zookeeper1/
mkdir data
mkdir logs
cd data
touch myid
vi myid

1

cd /opt/data
cp -r zookeeper1 zookeeper2
cp -r zookeeper1 zookeeper3

vi zookeeper2/data/myid

2

vi zookeeper3/data/myid

3

5、为每个节点创建配置文件

cd /opt/zookeeper/zookeeper1/conf/
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg

dataDir=/opt/data/zookeeper1/data/
dataLogDir=/opt/data/zookeeper1/logs/
server.1=127.0.0.1:8880:7770
server.2=127.0.0.1:8881:7771
server.3=127.0.0.1:8882:7772

cp zoo.cfg /opt/zookeeper/zookeeper2/conf/zoo.cfg
cp zoo.cfg /opt/zookeeper/zookeeper3/conf/zoo.cfg
vi /opt/zookeeper/zookeeper2/conf/zoo.cfg

dataDir=/opt/data/zookeeper2/data/
dataLogDir=/opt/data/zookeeper2/logs/
server.1=127.0.0.1:8880:7770
server.2=127.0.0.1:8881:7771
server.3=127.0.0.1:8882:7772

vi /opt/zookeeper/zookeeper3/conf/zoo.cfg

dataDir=/opt/data/zookeeper3/data/
dataLogDir=/opt/data/zookeeper3/logs/
server.1=127.0.0.1:8880:7770
server.2=127.0.0.1:8881:7771
server.3=127.0.0.1:8882:7772

6、最终文件夹层级关系

|-- /opt/
    |-- zookeeper    --程序文件夹
        |-- zookeeper1/
            |-- conf/
                |-- zoo.cfg
        |-- zookeeper2/
            |-- conf/
                |-- zoo.cfg
        |-- zookeeper3/
            |-- conf/
                |-- zoo.cfg
    |-- data         -- 数据文件夹
        |-- zookeeper1/
            |-- data/
                |-- myid
            |-- logs/
        |-- zookeeper2/
            |-- data/
                |-- myid
            |-- logs/
        |-- zookeeper3/
            |-- data/
                |-- myid
            |-- logs/

7、启动zookeeper集群

cd /opt/zookeeper/
zookeeper1/bin/zkServer.sh start
zookeeper2/bin/zkServer.sh start
zookeeper3/bin/zkServer.sh start

8、查看已启动ZK集群

jps -ml
27492 org.apache.zookeeper.server.quorum.QuorumPeerMain /opt/zookeeper/zookeeper3/bin/../conf/zoo.cfg
29013 sun.tools.jps.Jps -ml
27449 org.apache.zookeeper.server.quorum.QuorumPeerMain /opt/zookeeper/zookeeper2/bin/../conf/zoo.cfg
27422 org.apache.zookeeper.server.quorum.QuorumPeerMain /opt/zookeeper/zookeeper1/bin/../conf/zoo.cfg

9、查看每个节点的角色/Model(可以看出2是主节点,1和3是副节点)

[root@iZuf66txzmeg2fbo0i8nhkZ zookeeper]# zookeeper1/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/zookeeper1/bin/../conf/zoo.cfg
Mode: follower
[root@iZuf66txzmeg2fbo0i8nhkZ zookeeper]# zookeeper2/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/zookeeper2/bin/../conf/zoo.cfg
Mode: leader
[root@iZuf66txzmeg2fbo0i8nhkZ zookeeper]# zookeeper3/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/zookeeper3/bin/../conf/zoo.cfg
Mode: follower

10、客户端连接集群

[root@iZuf66txzmeg2fbo0i8nhkZ zookeeper]# zookeeper1/bin/zkCli.sh -server localhost:2181
Connecting to localhost:2181
2019-12-14 16:10:45,388 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.10-39d3a4f269333c922ed3db283be479f9deacaa0f, built on 03/23/2017 10:13 GMT
2019-12-14 16:10:45,391 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=iZuf66txzmeg2fbo0i8nhkZ
2019-12-14 16:10:45,391 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.8.0_172
2019-12-14 16:10:45,393 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2019-12-14 16:10:45,393 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/usr/local/jdk1.8.0_172/jre
2019-12-14 16:10:45,393 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/opt/zookeeper/zookeeper1/bin/../build/classes:/opt/zookeeper/zookeeper1/bin/../build/lib/*.jar:/opt/zookeeper/zookeeper1/bin/../lib/slf4j-log4j12-1.6.1.jar:/opt/zookeeper/zookeeper1/bin/../lib/slf4j-api-1.6.1.jar:/opt/zookeeper/zookeeper1/bin/../lib/netty-3.10.5.Final.jar:/opt/zookeeper/zookeeper1/bin/../lib/log4j-1.2.16.jar:/opt/zookeeper/zookeeper1/bin/../lib/jline-0.9.94.jar:/opt/zookeeper/zookeeper1/bin/../zookeeper-3.4.10.jar:/opt/zookeeper/zookeeper1/bin/../src/java/lib/*.jar:/opt/zookeeper/zookeeper1/bin/../conf:.:/usr/local/java/lib/dt.jar:/usr/local/java/lib/tools.jar
2019-12-14 16:10:45,393 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2019-12-14 16:10:45,393 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2019-12-14 16:10:45,393 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
2019-12-14 16:10:45,393 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
2019-12-14 16:10:45,393 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=amd64
2019-12-14 16:10:45,394 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=3.10.0-514.26.2.el7.x86_64
2019-12-14 16:10:45,394 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root
2019-12-14 16:10:45,394 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root
2019-12-14 16:10:45,394 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/opt/zookeeper
2019-12-14 16:10:45,395 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@69d0a921
2019-12-14 16:10:45,419 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
Welcome to ZooKeeper!
JLine support is enabled
2019-12-14 16:10:45,538 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@876] - Socket connection established to localhost/127.0.0.1:2181, initiating session
2019-12-14 16:10:45,548 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1299] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x16f033a788b0001, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0] 

11、调整zookeeper的jvm启动参数,主要调整堆内存大小

zookeeper1/bin/zkEnv.sh中明确指出,独立JVM内存的设置文件就是zookeeper1/conf/java.env;

if [ -f "$ZOOCFGDIR/java.env" ]
then
    . "$ZOOCFGDIR/java.env"
fi

如果没有新建一个即可,其中JAVA_HOME和堆内存大小按照实际情况填写;

#!/bin/sh
export JAVA_HOME=/usr/local/java/
export JVMFLAGS="-Xms256m -Xmx256m $JVMFLAGS"

猜你喜欢

转载自blog.csdn.net/hellboy0621/article/details/103538653