这篇文章主要讲解了“ZooKeeper在单机和集群环境下怎么安装搭建及使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ZooKeeper在单机和集群环境下怎么安装搭建及使用”吧!
首先我们下载最新稳定版本的zookeeper
下载完成后,我们解开压缩包
解压后的路径下找到conf文件夹,进入conf文件夹复制zoo_sample.cfg,命名为zoo.cfg
# 每个tick的毫秒数。后面的initLimit和syncLimit都以tick为单位 tickTime=2000 #初始化同步阶段时长 initLimit=10 # 同步确认时长 syncLimit=5 # 快照存储路径,不要使用/tmp。这里使用只是为了示例 dataDir=/tmp/zookeeper # 客户端端口好 clientPort=2181 #可连接的client的最大数 #如果需要处理更多的clinet,请增加此数量 #maxClientCnxns=60 # Be sure to read the maintenance section of the # # administrator guide before turning on autopurge. # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1
对于学习来说,一般无需做修改。生产环境,需要修改dataDir。其他参数后续调优。
在ZooKeeper根目录下执行 bin/zkServer.sh start
➜ zookeeper-3.4.12 bin/zkServer.sh start ZooKeeper JMX enabled by default Using config: /Users/yimingli/dev/tool/zookeeper-3.4.12/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
➜ zookeeper-3.4.12 bin/zkCli.sh
1、创建znode,名为/my_test,携带数据testData
[zk: localhost:2181(CONNECTED) 0] create /my_test testData
2、查看znode信息
[zk: localhost:2181(CONNECTED) 2] get /my_test
返回如下:
testData cZxid = 0x2e9 ctime = Mon Oct 29 10:50:46 CST 2018 mZxid = 0x2e9 mtime = Mon Oct 29 10:50:46 CST 2018 pZxid = 0x2e9 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 8 numChildren = 0
3、修改znode数据
[zk: localhost:2181(CONNECTED) 3] set /my_test testDataV2
4、创建子znode
[zk: localhost:2181(CONNECTED) 0] create /my_test/tester1 testData
5、列出子znode
[zk: localhost:2181(CONNECTED) 5] ls /my_test [tester1]
6、删除znode
有子节点的znode不能直接删除,否则会报错。
[zk: localhost:2181(CONNECTED) 6] delete /my_test Node not empty: /my_test
我们删除/my_test/tester1。
[zk: localhost:2181(CONNECTED) 8] delete /my_test/tester1
再次查看该znode。
[zk: localhost:2181(CONNECTED) 9] get /my_test/tester1 Node does not exist: /my_test/tester1
已经被成功删除了。
我们配置和启动一个三台server的集群。
1、修改zoo.cfg文件
tickTime=2000 dataDir=/var/lib/zookeeper clientPort=2181 initLimit=5 syncLimit=2 server.1=ip1:2888:3888 server.2=ip2:2888:3888 server.3=ip3:2888:3888
initLimit,zookeeper用来限制zookeeper服务器连接到leader的时长。
syncLimit,一个服务器多久在leader那里过期。
以上两种过期时间,单位都是tickTime,
本例initLimit时长为5个tickTime=5*2000ms=10秒
server.x列出了所有的zookeeper服务。集群启动它通过查看data下面的myid来知道自己是哪台服务器。
2888用来连接其它server。3888用来leader选举。
2、复制2份zookeeper到另外两台server上。
3、在配置的dataDir路径下创建myid文件,文件内容为对应自己的server.x的x值。比如zoo1这台sever,myid文件中内容为1.
4、启动每个zookeeper
5、查看本机状态,是leader还是follower
➜ zookeeper-3.4.12 bin/zkServer.sh status
至此我们已经把zookeeper集群启动起来了,并且做了验证,有一台是leader,另外两台是follower。
我们还可以做个实验,看zookeeper集群是否工作正常。
1、连接其中一台server,创建一个znode。
➜ zookeeper-3.4.12 bin/zkCli.sh -server ip1:2181 [zk: ip1:2181(CONNECTED) 10] create /zk_test my_data
2、连接另外一台server,列出所有根节点下znode。
➜ zookeeper-3.4.12 bin/zkCli.sh -server ip2:2181 [zk: ip2:2181(CONNECTED) 10] ls /
输出如下:
[zk_test]
可以看到集群已经能够正常工作,server间可以正常进行数据的复制。
客户端连接集群方法如下:
➜ zookeeper-3.4.12 bin/zkCli -server ip1:2181,ip2:2181,ip3:2181
客户端会自动随机选择集中一台连接。
感谢各位的阅读,以上就是“ZooKeeper在单机和集群环境下怎么安装搭建及使用”的内容了,经过本文的学习后,相信大家对ZooKeeper在单机和集群环境下怎么安装搭建及使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。