linux安装zookpper及常用命令

首先安装jdk从官网下载对应的linux版本,上传到服务器,修改环境变量

进入配置文件 vim /etc/profile

加入代码:

JAVA_HOME=/usr/local/java/jdk1.8.0_161
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH

测试:java -version

进入zookeeper官网 http://zookeeper.apache.org/

  然后下载你需要的版本 下载好后放到linux服务器上home文件夹中 ps:所有上传的tar包都放到这个文件夹中

 改个名字:  mv zookeeper-3.4.11 zookeeper 换个路径:mv zookeeper /usr/local/

修改环境变量 vim /etc/profile

加入:

ZOOKEEPER_HOME=/usr/local/zookeeper

PATH=$JAVA_HOME/bin:$PATH:$ZOOKEEPER_HOME/bin

 zookeeper目录结构:

zookeeper配置文件:cp zoo_sample.cfg zoo.cfg 复制配置文件

 1.tickTime:CS通信心跳数

 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。

tickTime以毫秒为单位。

tickTime:该参数用来定义心跳的间隔时间,zookeeper的客户端和服务端之间也有和web开发里类似的session的概念,而zookeeper里最小的session过期时间就是tickTime的两倍。

2.initLimit:LF初始通信时限
集群中的follower服务器(F)与leader服务器(L)之间 初始连接 时能容忍的最多心跳数(tickTime的数量)。

此配置表示,允许 follower (相对于 leader 而言的“客户端”)连接 并同步到  leader 的初始化连接时间,它以 tickTime 的倍数来表示。当超过设置倍数的 tickTime 时间,则连接失败。

 3.syncLimit:LF同步通信时限
 集群中的follower服务器(F)与leader服务器(L)之间 请求和应答 之间能容忍的最多心跳数(tickTime的数量)。

此配置表示, leader 与 follower 之间发送消息,请求 和 应答 时间长度。如果 follower 在设置的时间内不能与leader 进行通信,那么此 follower 将被丢弃。

启动zookeeper: 进入bin目录 ./zkServer.sh start

zookeeper数据结构: b-tree

客户端连接服务端:./zkCli.sh

zookeeper五大特点:

① 首脑模式: 主机挂了后会在从机中选出替代主机的机器

②统一配置文件管理:在一台服务器上配置好会同步到其他服务器上;

③消息订阅

④分布式锁 类似线程锁:调用资源时其他调用时阻塞状态

⑤集群管理: 保证数据的强一致性

目前来看 zookeeper是数据结构中的tree结构

可以创建持久节点.临时节点和顺序节点

create -e/-s 临时节点和顺序节点

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

set node data version 修改节点

delete node version 删除节点

增删改 在删改的时候加上版本号 会实现乐观锁

watcher机制 监控节点的增删改 都会触发watcher事件

父节点watch事件触发:

①NodeCreated : 绑定命令为 stat  /path watch

 ②NodeDataChanged: 

③NodeDeleted:

④NodeChildrenChanged:父节点使用ls path watch 子节点增加删除时都会触发此事件

!!!ps: 所有绑定事件在触发一次后都会失效,需要进行重新绑定 ,子节点修改时只能在子节点绑定get path watch

watch使用场景:zk集群统一资源配置。当修改主机节点信息时会触发watch事件,修改其他节点信息,其他节点信息改变会触发此节点watch事件进而继续修改其他节点配置信息如图:

ACL:权限认证列表 (access control list) 权限控制单

ACL命令行学习:

命令这样写:

schema: 包含三种模式

world:任何人都可以访问

auth: 用户名明文密码访问

digest: 用户名密文密码访问

注册用户以及设置权限:

digest: 加密登陆

不上图了

通过ip设置权限:

超级管理员:

vim zkServer.sh

/nohup 查找

"-Dzookeeper.DigestAuthenticationProvider.superDigest=super:g9oN2HttPfn8MMWJZ2r45Np/LIA=" \

super:superpw

重启服务 ./zkServer.sh restart 生效

zookeeper 四字命令:用于查看zookeeper各状态

去官网看吧 还有白名单。

cd conf 

vim zoo.cfg

搭建伪集群

启动每个服务器 连接2181端口:

./zkCli.sh -server localhost:2181 设置数据

切换 ./zkCli.sh -server localhost:2182 查询数据

猜你喜欢

转载自blog.csdn.net/liyanpeng1989/article/details/82384862