分布式管中窥豹之zookeeper小白学习(二)启动zookeeper服务

欢迎来到分布式管中窥豹之zookeeper小白学习系列,本系列会记录zookeeper以及分布式系统学习过程中的一些操作和细节,大饼果子非科班出身,如有错误,欢迎指出


 

 

zookeeper的服务端有两种运行模式,独立模式standalone(一个节点跑)和仲裁模式quorum(很多节点跑,并且互相有通信)

本篇我们将启动独立模式,并用客户端对其进行连接

 

准备工作

1. 到Apache的网站上下载zookeeper

 http://zookeeper.apache.org/releases.html

 2. 进行解压

tar -xvzf zookeeper-3.4.12.tar.gz
cd zookeeper-3.4.14

我们可以看到目录里的文件

LICENSE.txt			build.xml			ivy.xml				zookeeper-3.4.12.jar
NOTICE.txt			conf				ivysettings.xml			zookeeper-3.4.12.jar.asc
README.md			contrib				lib				zookeeper-3.4.12.jar.md5
README_packaging.txt		dist-maven			recipes				zookeeper-3.4.12.jar.sha1
bin				docs				src

启动和连接的脚本在bin里面,配置文件在conf里面

3. 进行简单的配置修改

cp conf/zoo_sample.cfg conf/zoo.cfg
vim conf/zoo.cfg

我们可以看到官方不推荐dataDir到/tmp路径下,将其修改到用户管理的文件下

然后执行

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

我们可以看到如下

ZooKeeper JMX enabled by default
Using config: conf/zoo.cfg
Starting zookeeper ... STARTED

在当前路径下有zookeeper的log,zookeeper.out,我们可以打开这个文件

2019-01-25 11:39:52,418 [myid:] - INFO  [main:ZooKeeperServer@835] - tickTime set to 2000
2019-01-25 11:39:52,418 [myid:] - INFO  [main:ZooKeeperServer@844] - minSessionTimeout set to -1
2019-01-25 11:39:52,418 [myid:] - INFO  [main:ZooKeeperServer@853] - maxSessionTimeout set to -1
2019-01-25 11:39:52,435 [myid:] - INFO  [main:ServerCnxnFactory@117] - Using org.apache.zookeeper.server.NIOServerCnxnFactory as server connection factory
2019-01-25 11:39:52,446 [myid:] - INFO  [main:NIOServerCnxnFactory@89] - binding to port 0.0.0.0/0.0.0.0:2181

看到成功绑定了端口,说明我们启动成功了

4. 我们来使用客户端连接一下

./bin/zkCli.sh

我们可以看到

2019-01-25 11:46:32,460 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@878] - Socket connection established to localhost/0:0:0:0:0:0:0:1:2181, initiating session
JLine support is enabled
2019-01-25 11:46:32,505 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1302] - Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x10029e69df40000, negotiated timeout = 30000

WATCHER::

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

进到了zookeeper的客户端,说明我们已经成功的使用客户端连接了服务端

5. 我们可以查看一下help

[zk: localhost:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
	stat path [watch]
	set path data [version]
	ls path [watch]
	delquota [-n|-b] path
	ls2 path [watch]
	setAcl path acl
	setquota -n|-b val path
	history 
	redo cmdno
	printwatches on|off
	delete path [version]
	sync path
	listquota path
	rmr path
	get path [watch]
	create [-s] [-e] path data acl
	addauth scheme auth
	quit 
	getAcl path
	close 
	connect host:port

help展示了zookeeper的很多命令,这些在以后用到的时候再去分析,或者读者可以自行尝试,比如 ls / 可以去查看路径下的文件信息(znode)

 

至此,我们已经成功搭建了zookeeper的独立模式,当然这只是第一步,相信独立模式是不会被用在生产环境的,但已经足够方便让我们去学习zookeeper的结构和使用方法了

仲裁模式与分布式的一致性算法会在很后面的章节一起学习

 

服务端的其他两个命令

$ ./bin/zkServer.sh status conf/zoo.cfg 
ZooKeeper JMX enabled by default
Using config: conf/zoo.cfg
Mode: standalone
$ ./bin/zkServer.sh stop conf/zoo.cfg 
ZooKeeper JMX enabled by default
Using config: conf/zoo.cfg
Stopping zookeeper ... STOPPED

分别可以查看状态和关闭zookeeper服务,可以看到我们是standalone的没错哟

 

管中窥豹,可见一斑

下一篇,zookeeper的文件存储结构

https://www.cnblogs.com/dabingguozi/p/10318895.html

 

posted @ 2019-01-25 18:19  大饼果子  阅读(370)  评论(0编辑  收藏  举报