Zookeeper在Linux中的安装与配置

 zookeeper原理可以参考 https://www.cnblogs.com/wuxl360/p/5817471.html

 zookeeper是一个为分布式应用提供一致性服务的软件。

下载地址:

http://archive.apache.org/dist/zookeeper/zookeeper-3.4.5/

 下载后解压到指定目录,然后更改conf文件夹下的zoo_sample.cfg为zoo.cfg

因为启动的时候读取的就是zoo.cfg

使用vim zoo.cfg查看一下:

# 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
# the port at which the clients will connect
clientPort=2181

 注意:dataDir=/tmp/zookeeper这个文件夹得事先存在。也同样可以配置log文件位置。

 zookeeper环境变量设置

 ./zkServer.sh start 启动一下试试:

[root@localhost bin]# ./zkServer.sh start
JMX enabled by default
Using config: /apps/zookeeper-3.4.5-cdh5.7.0/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@localhost bin]# jps
4993 QuorumPeerMain
5021 Jps
[root@localhost bin]# 

也可以通过 ps -ef|grep zookeeper

[root@localhost bin]# ps -ef|grep zookeeper
root       4993      1  1 08:52 pts/2    00:00:01 java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /apps/zookeeper-3.4.5-cdh5.7.0/bin/../build/classes:/apps/zookeeper-3.4.5-cdh5.7.0/bin/../build/lib/*.jar:/apps/zookeeper-3.4.5-cdh5.7.0/bin/../share/zookeeper/zookeeper-3.4.5-cdh5.7.0.jar:/apps/zookeeper-3.4.5-cdh5.7.0/bin/../share/zookeeper/slf4j-log4j12-1.7.5.jar:/apps/zookeeper-3.4.5-cdh5.7.0/bin/../share/zookeeper/slf4j-api-1.7.5.jar:/apps/zookeeper-3.4.5-cdh5.7.0/bin/../share/zookeeper/netty-3.2.2.Final.jar:/apps/zookeeper-3.4.5-cdh5.7.0/bin/../share/zookeeper/log4j-1.2.16.jar:/apps/zookeeper-3.4.5-cdh5.7.0/bin/../share/zookeeper/jline-2.11.jar:/apps/zookeeper-3.4.5-cdh5.7.0/bin/../src/java/lib/*.jar:/apps/zookeeper-3.4.5-cdh5.7.0/bin/../conf: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /apps/zookeeper-3.4.5-cdh5.7.0/bin/../conf/zoo.cfg
root       5067   4034  0 08:54 pts/2    00:00:00 grep zookeeper
[root@localhost bin]# 

我们使用zkCli.sh 连接一下:

[root@localhost bin]# ./zkCli.sh
Connecting to localhost:2181
2019-01-11 09:07:08,835 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.5-cdh5.7.0--1, built on 03/23/2016 18:31 GMT
2019-01-11 09:07:08,839 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=localhost
2019-01-11 09:07:08,839 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.8.0_162
2019-01-11 09:07:08,842 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2019-01-11 09:07:08,842 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/java/jdk1.8.0_162/jre
2019-01-11 09:07:08,842 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/apps/zookeeper-3.4.5-cdh5.7.0/bin/../build/classes:/apps/zookeeper-3.4.5-cdh5.7.0/bin/../build/lib/*.jar:/apps/zookeeper-3.4.5-cdh5.7.0/bin/../share/zookeeper/zookeeper-3.4.5-cdh5.7.0.jar:/apps/zookeeper-3.4.5-cdh5.7.0/bin/../share/zookeeper/slf4j-log4j12-1.7.5.jar:/apps/zookeeper-3.4.5-cdh5.7.0/bin/../share/zookeeper/slf4j-api-1.7.5.jar:/apps/zookeeper-3.4.5-cdh5.7.0/bin/../share/zookeeper/netty-3.2.2.Final.jar:/apps/zookeeper-3.4.5-cdh5.7.0/bin/../share/zookeeper/log4j-1.2.16.jar:/apps/zookeeper-3.4.5-cdh5.7.0/bin/../share/zookeeper/jline-2.11.jar:/apps/zookeeper-3.4.5-cdh5.7.0/bin/../src/java/lib/*.jar:/apps/zookeeper-3.4.5-cdh5.7.0/bin/../conf:
2019-01-11 09:07:08,842 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2019-01-11 09:07:08,842 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2019-01-11 09:07:08,842 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
2019-01-11 09:07:08,842 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
2019-01-11 09:07:08,842 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=amd64
2019-01-11 09:07:08,842 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=2.6.32-431.el6.x86_64
2019-01-11 09:07:08,842 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root
2019-01-11 09:07:08,844 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root
2019-01-11 09:07:08,844 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/apps/zookeeper-3.4.5-cdh5.7.0/bin
2019-01-11 09:07:08,846 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@3eb07fd3
Welcome to ZooKeeper!
2019-01-11 09:07:08,894 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@975] - Opening socket connection to server localhost/172.16.205.88:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2019-01-11 09:07:09,008 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@852] - Socket connection established, initiating session, client: /172.16.205.88:40481, server: localhost/172.16.205.88:2181
[zk: localhost:2181(CONNECTING) 0] 2019-01-11 09:07:09,071 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1235] - Session establishment complete on server localhost/172.16.205.88:2181, sessionid = 0x1683dd457b30000, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
这里我们输入help

help 查看客户端帮助命令:

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
[zk: localhost:2181(CONNECTED) 1] 

使用ls 查看一下节点:我们看到有个默认的zookeeper节点。 

[zk: localhost:2181(CONNECTED) 8] ls /zookeeper
[quota]
[zk: localhost:2181(CONNECTED) 9] ls /zookeeper/quota
[]
[zk: localhost:2181(CONNECTED) 10]

 get 获取节点数据和更新信息

get内容为空
cZxid :创建节点的id
ctime : 节点的创建时间
mZxid :修改节点的id
mtime :修改节点的时间
pZxid :子节点的id
cversion : 子节点的版本
dataVersion : 当前节点数据的版本
aclVersion :权限的版本
ephemeralOwner :判断是否是临时节点
dataLength : 数据的长度
numChildren :子节点的数量

create /guang 我是测试 (创建一个节点名字是guang,内容是 "我是测试")

create -e  /guangtest 我是临时测试 (创建一个临时节点名字是guangtest,内容是 "我是临时测试")

create -s 创建顺序节点 自动累加

set path data [version] 修改节点

delete path [version] 删除节点

watcher通知机制

关于watcher机制大体的理解可以为,当每个节点发生变化,都会触发watcher事件,类似于mysql的触发器。zk中 watcher是一次性的,触发后立即销毁。可以参考https://blog.csdn.net/hohoo1990/article/details/78617336 
- stat path [watch] 设置watch事件 
- get path [watch]设置watch事件 
- 子节点创建和删除时触发watch事件,子节点修改不会触发该事件

、、、待更新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值