zookeeper的下载
如果大家是在虚拟机上安装可以在如下连接中下载zookeeper:微云链接
然后借助 vmtool 拖拽到虚拟机中。
如果是在云服务器可以用wget
命令下载:
# Linux下载zookeeper
ubuntu@VM-0-2-ubuntu:~$ wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
解压zookeeper安装包
然后用zookeeper解压一下安装包
ubuntu@VM-0-2-ubuntu:~/zookeeper$ tar zxvf zookeeper-3.4.10.tar.gz
之后,我们添加两个环境变量,创建zookeeper的快捷方式,这样就不用每次都进入目录之后再启动zookeeper了
export ZOOKEEPER_HOME=/home/ik/software/zookeeper/zookeeper-3.4.12
export PATH=$PATH:$ZOOKEEPER_HOME/bin
# 使配置生效
source /etc/profile
配置zookeeper
进入刚刚的解压目录下
ubuntu@VM-0-2-ubuntu:~/zookeeper$ ls
zookeeper-3.4.10 zookeeper-3.4.10.tar.gz zookeeper_data
ubuntu@VM-0-2-ubuntu:~/zookeeper$ cd zookeeper-3.4.10
ubuntu@VM-0-2-ubuntu:~/zookeeper/zookeeper-3.4.10$ ls
bin contrib ivysettings.xml LICENSE.txt README.txt zookeeper-3.4.10.jar zookeeper-3.4.10.jar.sha1
build.xml dist-maven ivy.xml NOTICE.txt recipes zookeeper-3.4.10.jar.asc
conf docs lib README_packaging.txt src zookeeper-3.4.10.jar.md5
可以看到有个conf目录,进入:
ubuntu@VM-0-2-ubuntu:~/zookeeper/zookeeper-3.4.10$ cd conf
ubuntu@VM-0-2-ubuntu:~/zookeeper/zookeeper-3.4.10/conf$ ls
configuration.xsl log4j.properties zoo_sample.cfg
然后将 zoo_sample.cfg 重命名为 zoo.cfg:
ubuntu@VM-0-2-ubuntu:~/zookeeper/zookeeper-3.4.10/conf$ mv zoo_sample.cfg zoo.cfg
ubuntu@VM-0-2-ubuntu:~/zookeeper/zookeeper-3.4.10/conf$ ls
configuration.xsl log4j.properties zoo.cfg
然后用 vim 打开 zoo.cfg,修改其中的一些配置如下:
# zookeeper 配置
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/tmp/zookeeper/data
# the port at which the clients will connect
clientPort=2181
# log dir
dataLogDir=/tmp/zookeeper/log
因为dataDir
和dataLogDir
这两个目录咱们还没有创建,所以为了使配置生效,我们需要创建一下这两个目录:
mkdir -p /tmp/zookeeper/data
mkdir -p /tmp/zookeeper/log
启动zookeeper
启动服务端
在刚刚安装的 bin
目录下,启动如下文件:
ubuntu@VM-0-2-ubuntu:/usr/share/zookeeper/bin$ sudo ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /etc/zookeeper/conf/zoo.cfg
Starting zookeeper ... STARTED
启动客户端
同样还是在刚刚的目录 bin
下,启动客户端:
ubuntu@VM-0-2-ubuntu:/usr/share/zookeeper/bin$ sudo ./zkCli.sh
Connecting to localhost:2181
Welcome to ZooKeeper!
JLine support is enabled
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0]
安装 zookeeper 的 C++ 开发环境
进入刚刚安装路径下的src目录:
ubuntu@VM-0-2-ubuntu:~/zookeeper/zookeeper-3.4.10$ cd src
ubuntu@VM-0-2-ubuntu:~/zookeeper/zookeeper-3.4.10/src$ ls
c contrib docs java lastRevision.bat lastRevision.sh LICENSE.txt NOTICE.txt packages pom.template recipes zookeeper.jute
进入c目录
ubuntu@VM-0-2-ubuntu:~/zookeeper/zookeeper-3.4.10/src/c$ ls
acinclude.m4 Cli.vcproj depcomp libtool libzkmt_la-zookeeper.jute.lo ltmain.sh st_adaptor.lo zookeeper.lo
aclocal.m4 compile generated libzkmt.la libzkmt_la-zookeeper.jute.o Makefile st_adaptor.o zookeeper.o
aminclude.am config.guess hashtable_itr.lo libzkmt_la-mt_adaptor.lo libzkmt_la-zookeeper.lo Makefile.am stamp-h1 zookeeper.sln
autom4te.cache config.h hashtable_itr.o libzkmt_la-mt_adaptor.o libzkmt_la-zookeeper.o Makefile.in tests zookeeper.vcproj
c-doc.Doxyfile config.h.in hashtable.lo libzkmt_la-recordio.lo libzkst.la missing zk_hashtable.lo
ChangeLog config.log hashtable.o libzkmt_la-recordio.o libzookeeper_mt.la NOTICE.txt zk_hashtable.o
cli_mt config.status include libzkmt_la-zk_hashtable.lo libzookeeper_st.la README zk_log.lo
cli_mt-cli.o config.sub INSTALL libzkmt_la-zk_hashtable.o LICENSE recordio.lo zk_log.o
cli.o configure install-sh libzkmt_la-zk_log.lo load_gen recordio.o zookeeper.jute.lo
cli_st configure.ac libhashtable.la libzkmt_la-zk_log.o load_gen-load_gen.o src zookeeper.jute.o
然后依次执行以下命令:
ubuntu@VM-0-2-ubuntu:~/zookeeper/zookeeper-3.4.10/src/c$ sudo ./configure
ubuntu@VM-0-2-ubuntu:~/zookeeper/zookeeper-3.4.10/src/c$ sudo make
ubuntu@VM-0-2-ubuntu:~/zookeeper/zookeeper-3.4.10/src/c$ sudo make install
参考文献
[1] djqueue.CSDN.Zookeeper C API学习笔记(ubuntu)
[2] 朱忠华.《深入理解kafka》.电子工业出版社.2021.3