Linux环境搭建伪分布式zookeeper

一、环境准备

1.linux必须安装jdk,并配置环境变量,即java命令可以生效;

2.需要下载zookeeper-3.4.12.tar.gz安装包。

二、安装步骤

1.将安装包上传到linux服务器上

2.解压安装包 tar -zxvf,并为其编号(比如zookeeper01)

3.进入zookeeper01文件夹并新建data文件夹(为了存放服务ID,启动时会生成相应的服务器ID)和logs文件夹(存放运行日志)

4.进入zookeeper01目录下的conf,copy zoo_sample.cfg配置文件(或者直接修改此文件,因为启动时可指定配置文件)

5.对文件进行如下修改

tickTime=2000 //心跳时间,用于检测服务器是否正常工作
initLimit=10 //初始化时leader和follower之间连接能容忍几次心跳(能容忍2000*10的连接时间)
syncLimit=5 //leader和follower之间请求应答能容忍几次心跳
dataDir=/usr/local/share/zookeeper-01/data //第三步中新增的data目录
dataLogDir=/usr/local/share/zookeeper-01/logs //第三步中新增的logs目录
clientPort=2181 //此服务器的zk客户端连接端口
server.1=127.0.0.1:8881:7771 //此三行为服务器ip端口配置,此例中有三个服务
server.2=127.0.0.1:8882:7772 //server后面的2代表服务器编号,需要配置在id中
server.3=127.0.0.1:8883:7773 //8883用于正常情况下服务器通信,7773用于宕机或初始化时leader选举通信

6.复制zookeeper01目录(配置文件中配置了三个)

drwxr-xr-x  12 1000 1000     4096 Nov  8 15:01 zookeeper-01
drwxr-xr-x  12 root root     4096 Nov  8 15:01 zookeeper-02
drwxr-xr-x  12 root root     4096 Nov  8 15:01 zookeeper-03

7.在data目录下新建myid文件,并写入ID(server.1写入1,server.2写入2)

8.执行zk命令启动服务器

bin/zkServer.sh start conf/zoo.cfg

9.使用zk命令查看启动状态(可以看到02为leader节点)

[root@tencent zookeeper-02]# bin/zkServer.sh status conf/zoo.cfg 
ZooKeeper JMX enabled by default
Using config: conf/zoo.cfg
Mode: leader

10.可使用zk客户端进行服务注册等操作

./zkCli.sh -server localhost:2181 //实际开发环境下会使用ide或代码连接操作

三、其他问题

1.无法启动zookeeper服务器

  • 进入目录下的bin中,可以查看服务器启动状态(图中为jdk未配置正确)
[root@tencent bin]# tail -1000f zookeeper.out 
nohup: failed to run command ‘java’: No such file or directory

2.如何查看zk日期

  • zk日志为二进制文件,直接cat查看会乱码,需要使用其提供的format工具包转码
  • 1.可新建文件夹,将zookeeper文件夹中zookeeper-3.4.12.jar和lib目录下的slf4j-api-1.7.25.jar复制到其中
  • 2.利用jdk转码
[root@tencent analyze]# java -classpath .:slf4j-api-1.7.25.jar:zookeeper-3.4.12.jar org.apache.zookeeper.server.LogFormatter /usr/local/share/zookeeper-02/logs/version-2/log.100000001 
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
ZooKeeper Transactional Log File with dbid 0 txnlog format version 2
11/8/19 4:19:12 PM CST session 0x1000a98d4810000 cxid 0x0 zxid 0x100000001 createSession 30000
11/8/19 4:20:10 PM CST session 0x1000a98d4810000 cxid 0x1 zxid 0x100000002 create '/zk-test,#313233,v{s{31,s{'world,'anyone}}},F,1
11/8/19 4:20:26 PM CST session 0x1000a98d4810000 cxid 0x2 zxid 0x100000003 create '/zk-test/book,#323333,v{s{31,s{'world,'anyone}}},F,1
11/8/19 4:21:38 PM CST session 0x1000a98d4810000 cxid 0x8 zxid 0x100000004 error -111
11/8/19 4:21:43 PM CST session 0x1000a98d4810000 cxid 0xa zxid 0x100000005 delete '/zk-test/book
11/8/19 4:22:27 PM CST session 0x2000a98d4880000 cxid 0x0 zxid 0x100000006 createSession 30000
11/8/19 4:22:45 PM CST session 0x1000a98d4810000 cxid 0x0 zxid 0x100000007 closeSession null
11/8/19 4:23:29 PM CST session 0x2000a98d4880000 cxid 0x0 zxid 0x100000008 closeSession null
EOF reached after 8 txns.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容