zookeeper 的功能特性是通过Zookeeper 配置文件(zoo.cfg) 来进行控制管理的,这样的配置方式使得部署在Zookeeper 服务的时候很方便。
1.基本配置
1.clientPort :监听客户端连接的端口。
2.tickTime:基本事件单元,以毫秒为单位,这个时间作为Zookeeper 服务器之间或者客户端与服务器之间维护心跳的时间间隔。
3.dataDir:存储在内存中数据快照的位置,如果不设置参数,更新事务的日志将存储到默认位置。应该谨慎选择日志存放的快照位置,使用专用的日志存储能够大大提高系统的性能。
2.系统设置
1.dataLogDir:这个参数能让管理器把事务日志写入“dataLogDir” 所指定的目录中,而不是写入“dataDir”所指定的目录。这允许使用一个专用的日志设备,帮助避免日志和快照的竞争。
2.maxClientCnxns:这个参数将限制连接到Zookeeper 客户端数量,并·限制并发连接的数量,通过ip 来区分不同的客户端。这个配置能够阻止某些类别的Dos 攻击,将其设置为零或者忽略设置将会取消对并发连接的限制。
3.minSessionTimeout 和maxSessionTimeout :minSessionTimeout 用来设置最小的会话超时阈值,maxSessionTimeout 用来设置最大的会话超时阈值。默认情况下,最小的会话超过为2倍的tickTime 时间,最大的会话超过时间为20倍tickTime 会话时间。
在配置这两个参数时候需要注意,如果将此值设置的太小的话,那么会话很可能刚刚建立由于超时而不得不退出。一般情况下,不能将此值设置的比tickTime 的值还小。
3.集群配置
1.initLimit:此设置表示允许Follow 连接并同步到Leader 的初始化连接时间,以tickTime 为单位。当初始化连接时间超过该值,则表示连接失败。
2.syncLimit:此设置项表示Leader 与Follower 之间发送消息,请求和应答时间长度。如果Follower 在设置时间内不能与Leader 通信,那么此Follower 将会被丢失。
3.server.A=B:C:D
A:其中A是一个数字,表示这个服务器的编号
B:这个服务器的ip 地址
C:Leader 选举的端口
D:Zookeeper 服务器之间的通信端口
4.myid 和zoo.cfg:除了修改zoo.cfg 配置文件外,集群模式下还要配置一个文件myid,该文件在dataDir 目录下,文件中只有一个数据就是A的值,Zookeeper 启动时会被读取这个文件,拿该数据zoo.cfg 中的配置信息进行比较从而判断到底哪个Server。
Zookeeper 的命令和操作
Zookeeper 命令
zookepper 支持某些特定的四个命令与其的交互,这些命令大多数查询命令用途,以获取Zookeeper 服务的当前状态及信息。
命令 | 功能描述 |
conf | 输出相关服务配置的详细信息 |
cons | 列出所有连接到服务器的客户端的完全连接/会话的详细信息 |
dump | 列出未经处理的会话和临时会话 |
envi | 输出关于服务环境的详细信息 |
reqs | 列出未经处理请求 |
ruok | 测试服务是否处于正确状态 |
stat | 输出关于性能和连接的客户端的列表 |
wchs | 列出服务器watch 的详细信息 |
wchc | 通过会话列出服务器watch 的详细信息 |
wchp | 通过路径列出服务器watch 的详细信息 |
Zookeeper 命令工具
当启动Zookeeper 服务成功后,输入zkCli.sh-server hadoop1:2181命令,会连接到Zookeeper 服务。
help
Zookeeper 的简单操作
ls
2.创建新的Znode 以及“zk” 相关联的字符串 :create /zk myData
3.在上两步的基础上,ls 查看现在Zookeeper 中所包含内容。
4.使用get 命令确认第二步中所创建的Znode
5.使用set 命令来对zk 所关联的字符串进行设置
6.最后将刚才创建的Znode 删除