ZooKeeper安装及常用命令


发现zookeeper3.5.3之后出了许多新特性,就趁此时机安装一下较新版本zookeeper,顺便记录一下安装步骤,方便以后查验。

首先准备zookeeper,在这里我使用的是centos7,java环境是1.8.安装的zookeeper是3.5.8.首先找到对应版本下载。

ZooKeeper单机安装

下载解压zookeeper

我这里直接从github上面下载对应的源码包,rz命令上传

地址:https://zookeeper.apache.org/releases.html

rz/sz安装命令

yum install lrzsz

安装包解压

tar -zxvf apache-zookeeper-3.5.8-bin.tar.gz -C /

增加软链接(纯粹为了方便,不影响安装)

ln -s /apache-zookeeper-3.5.8-bin/ /zk

进入zk目录,重命名配置文件

cp conf/zoo_sample.cfg conf/zoo.cfg

启动zookeeper

./bin/zkServer.sh start ./conf/zoo.cfg

连接zk服务端

./bin/zkCli.sh -server 127.0.0.1:2181

至此zookeeper安装完毕

ZooKeeper集群安装

为了方便这里我直接安装的是伪集群,集群架构1主2从1观察者,总共4个节点

步骤和上面单机一样,不过我们这里需要4个配置文件,并修改配置

复制4个配置文件

cp conf/zoo.cfg conf/zoo1.cfg
cp conf/zoo.cfg conf/zoo2.cfg
cp conf/zoo.cfg conf/zoo3.cfg
cp conf/zoo.cfg conf/zoo4.cfg

修改配置

tickTime=2000
initLimit=10
syncLimit=5
# dataDir修改配置为/zk/data1,/zk/data2,/zk/data3,/zk/data4
dataDir=/zk/data1
# clientPort修改配置为2181,2182,2183,2184
clientPort=2181
server.1=127.0.0.1:2001:3001
server.2=127.0.0.1:2002:3002
server.3=127.0.0.1:2003:3003
server.4=127.0.0.1:2004:3004:observer

创建4个目录,就是上面的dataDir目录

mkdir data1
mkdir data2
mkdir data3
mkdir data4

创建文件myid,标识服务server id

echo 1 > data1/myid
echo 2 > data2/myid
echo 3 > data3/myid
echo 4 > data4/myid

启动4个实例

./bin/zkServer.sh start conf/zoo1.cfg
./bin/zkServer.sh start conf/zoo2.cfg
./bin/zkServer.sh start conf/zoo3.cfg
./bin/zkServer.sh start conf/zoo4.cfg

可查询状态

./bin/zkServer.sh status conf/zoo1.cfg 
./bin/zkServer.sh status conf/zoo2.cfg
./bin/zkServer.sh status conf/zoo3.cfg
./bin/zkServer.sh status conf/zoo4.cfg

# 状态返回依次
ZooKeeper JMX enabled by default
Using config: conf/zoo1.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
#========================
ZooKeeper JMX enabled by default
Using config: conf/zoo2.cfg
Client port found: 2182. Client address: localhost.
Mode: leader
#========================
ZooKeeper JMX enabled by default
Using config: conf/zoo3.cfg
Client port found: 2183. Client address: localhost.
Mode: follower
#========================
ZooKeeper JMX enabled by default
Using config: conf/zoo4.cfg
Client port found: 2184. Client address: localhost.
Mode: observer
#========================

从状态返回很明显1,3节点为follower,2节点为leader,4节点为observer

连接服务端

./bin/zkCli.sh -server 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183,127.0.0.1:2184

启动参数配置

启动参数都是在zkServer.sh里面的ZOOMAIN参数里面配置

ZOOMAIN="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=$JMXLOCALONLY org.apache.zookeeper.server.quorum.QuorumPeerMain"

TTL节点

ttl节点默认是禁止的。如果要想使用ttl节点必须在启动参数配置

没有开启的情况

[zk: 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183,127.0.0.1:2184(CONNECTED) 0] create -t 500 /tsetttl
KeeperErrorCode = Unimplemented for /tsetttl

开启需要在启动配置加 -Dzookeeper.extendedTypesEnabled=true

ACL超级管理员配置

配置参数 -Dzookeeper.skipACL=yes可以跳过权限验证,一般安全就配置为false

获取加密密文

echo -n zk:123456 | openssl dgst -binary -sha1 | openssl base64
# 返回值
N0YquoLgOZWu74hzsd3OJTZZUw0=

启动脚本添加**-Dzookeeper.DigestAuthenticationProvider.superDigest=zk:N0YquoLgOZWu74hzsd3OJTZZUw0=**


文章作者: dm
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 dm !
评论
 上一篇
ZooKeeper初探及使用场景 ZooKeeper初探及使用场景
认识ZooKeeperZooKeeper是一个分布式调度协调服务,分布式应用的产生必定会带来多节点之间的协调问题,这个时候ZooKeeper就出现了。很多开源中间件都用到了ZooKeeper,比如KafKa就是强依赖于ZooKeeper.它
2023-08-28
下一篇 
Dubbo服务调用源码 Dubbo服务调用源码
前言前面对于服务导出和服务引入有了比较详细的解释,这里主要是对服务的整个调用过程进行解析。首先我们看一下Dubbo在整个调用过程情况。官方源码解析; 应用启动时,服务消费者首先会从注册中心拉取服务存到服务目录。 调用的时候会先从服务目录吧
2023-07-28
  目录