zookeeper简介&单机版安装

 

●  zookeeper概述

ZooKeeper::分布式协调工具,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

 

●  zookeeper特点

 

●  zookeeper数据结构

 

●  zookeeper的应用场景

提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等

 

统一命名服务

 

 统一配置管理

统一集群管理

服务器动态上下线

软负载均衡

●  zookeeper下载

---- 

----

----

 ----

----

 

●  zookeeper安装

一:上传到/usr/local/soft/目录下、解压、重命名

# tar -zxvf zookeeper-3.4.14.tar.gz    --解压
# mv zookeeper-3.4.14 zookeeper        --重命名

二:新建ZK的数据目录和日志目录

# cd zookeeper                   --进入ZK目录
# mkdir data                     --新建数据目录
# mkdir log                      --新建日志目录

三:修改ZK配置文件

# cd conf/                              --进入配置文件目录
# cp zoo_sample.cfg zoo.cfg             --复制一份,ZK默认加载的配置文件名:zoo.cfg
# vim zoo.cfg                           --编辑配置文件

 dataDIr、clientPort配置文件中已经指定,修改即可,dataLogDir需要添加列

dataDir=/usr/local/soft/zookeeper/data
dataLogDir=/usr/local/soft/zookeeper/log
clientPort=2181

 

●   zookeeper启动、连接

一:启动

# cd bin                            --进入bin目录
# ./zkServer.sh start               --启动zookeeper

 ./zkServer.sh { start | start-foreground | stop | restart | status | upgrade }      --其他用法

二:查看状态

# ./zkServer.sh status  或者  jps

三:连接

./zkCli.sh -server 127.0.0.1:2181          --连接服务,指定ip、端口

 

●   zoo.cfg文件详解

1.tickTime =2000:通信心跳数,Zookeeper服务器与客户端心跳时间,单位毫秒

Zookeeper使用的基本时间,服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳时间单位为毫秒。

它用于心跳机制,并且设置最小的session超时时间为两倍心跳时间(session的最小超时时间是2*tickTime)

2.initLimit =10:LF初始通信时限

集群中的Follower跟随者服务器与Leader领导者服务器之间初始连接时能容忍的最多心跳数(tickTime的数量),用它来限定集群中的Zookeeper服务器连接到Leader的时限。

3.syncLimit =5:LF同步通信时限

集群中Leader与Follower之间的最大响应时间单位,假如响应超过syncLimit * tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer。

4.dataDir:数据文件目录+数据持久化路径

主要用于保存Zookeeper中的数据。

5.clientPort =2181:客户端连接端口

监听客户端连接的端口

 

●   zookeeper命令详解

help命令

help命令用于查询客服端所支持的所用的命令,执行help,输入如下:

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

ls命令

  ls命令用于获取路径下的节点信息,注意路径为绝对路径,如:ls /

ls2命令

  ls2命令是ls命令的增强版,比ls命令多输出本节点信息

 

create命令        create [-s] [-e] path data acl

  create命令用于创建节点,其中-s为顺序节点,-e临时节点

create /node1 'i am a node1'

delete命令

  delete命令用于删除节点,如delete /nodeDelete

 

get命令

  get命令用于获取节点的信息,注意节点的路径必须是以/开头的绝对路径。如get /node1

 

set命令

  set命令用于设置节点的数据,如:set /node1 "i am 1"

 

addauth命令

  addauth命令用于节点认证,使用方式:如addauth digest username:password

 

setAcl命令

  setAcl命令用于设置节点Acl

  Acl由三部分构成:1为scheme,2为user,3为permission,一般情况下表示为scheme:id:permissions

 

getAcl命令

  获取节点的Acl,如getAcl /node1

world: 它下面只有一个id, 叫anyone, world:anyone代表任何人,zookeeper中对所有人有权限的结点就是属于world:anyone的

auth: 它不需要id, 只要是通过authentication的user都有权限(zookeeper支持通过kerberos来进行authencation, 也支持username/password形式的authentication)

digest: 它对应的id为username:BASE64(SHA1(password)),它需要先通过username:password形式的authentication

ip: 它对应的id为客户机的IP地址,设置的时候可以设置一个ip段,比如ip:192.168.1.0/16, 表示匹配前16个bit的IP段

super: 在这种scheme情况下,对应的id拥有超级权限,可以做任何事情(cdrwa)

permissions
CREATE(c): 创建权限,可以在在当前node下创建child node

DELETE(d): 删除权限,可以删除当前的node

READ(r): 读权限,可以获取当前node的数据,可以list当前node所有的child nodes

WRITE(w): 写权限,可以向当前node写数据

ADMIN(a): 管理权限,可以设置当前node的permission

 

stat命令

stat命令用于查看节点的状态信息,如stat /

 

history命令

  history用于列出最近的命令历史,可以和redo配合使用。如history  

 

redo命令

  redo命令用于再次执行某个命令,使用方式为redo cmdid 如 redo 20

  常与history配合使用

 

connect命令     

  连接zk服务端,与close命令配合使用可以连接或者断开zk服务端

connect 127.0.0.1:2181

close命令

  close命令用于关闭与服务端的链接

 

quit命令

  退出客户端

 

listquota命令

  listquota命令用于显示配额,如listquota /storm

absolute path is /zookeeper/quota/storm/zookeeper_limits
quota for /storm does not exist.

setquota命令

  setquota命令用于设置节点个数以及数据长度的配额,如:

1

2

setquota –n 4 /zookeeper/node 设置/zookeeper/node子节点个数最大为4

setquota –b 100 /zookeeper/node 设置/zookeeper/node节点长度最大为100

 delquota命令

  delquota命令用于删除配额,-n为子节点个数,-b为节点数据长度,如:delquota –n 2

 

sync命令

  sync命令用于强制同步,由于请求在半数以上的zk server上生效就表示此请求生效,那么就会有一些zk server上的数据是旧的。sync命令就是强制同步所有的更新操作。

 

printwatchers命令

  printWatchers命令用于设置和显示监视状态,值为on或则off

 

下一篇:搭建zookeeper集群:https://blog.csdn.net/qq_37936542/article/details/107096985

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章