1. 先玩起来
1.1 zk集群搭建
## 下面的每一步都需要在三台机器上都操作一遍,除非标注了不需要操作## 准备三个虚拟机节点、或者云服务器节点192.168.231.132 192.168.231.133 192.168.231.134## 修改3个节点的 etc/hostname 配置主机名称(内容随意有区分就行)kafka132kafka133kafka134## 修改3个节点的 etc/hosts 该文件可以让我们通过主机名称互通192.168.231.132 kafka132192.168.231.133 kafka133192.168.231.134 kafka134## 虚拟机防火墙、云服务器端口开放systemctl start firewalld ## 启动防火墙systemctl stop firewalld ## 关闭防火墙systemctl restart firewalld ## 重启防火墙systemctl status firewalld ## 查看防火墙状态systemctl disable firewalld ## 禁用防火墙## 验证服务通信,随便找一个节点,比如 221 节点,ping完之后显示互通就算完成ping kafka134## 系统需要安装jdk(每台服务都需要)因为zk是java写的## zk版本(每台服务都需要)zookeeper-3.4.6## 上传zk到服务器,也可以通过复制命令,复制到其它服务器/home/software/zookeeperscp zookeeper-3.4.6.tar.gz 192.168.231.132:/home/software/zookeeper## 解压到,/usr/local(每台服务都需要)tar -zxvf zookeeper-3.4.6.tar.gz -C /usr/local/## 修改环境变量,vim /etc/profileexport ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.6export PATH=.:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH## 刷新环境变量source /etc/profile## 进入文件目录cd /usr/local/zookeeper-3.4.6/conf## 修改配置名称mv zoo_sample.cfg zoo.cfg## 修改zoo.cfg,设置zk存储数据的目录dataDir=/usr/local/zookeeper-3.4.6/data## 修改zoo.cfg,修改集群地址,server.集群数从0开始=ip:2888:3888(单机版就写第一行就行)server.0=bhz221:2888:3888server.1=bhz222:2888:3888server.2=bhz223:2888:3888## 创建在配置文件中写的datamkdir /usr/local/zookeeper-3.4.6/data## 创建文件myidvim /usr/local/zookeeper-3.4.6/data/myid## 到此为止,Zookeeper集群环境大功告成!启动zookeeper命令启动路径:/usr/local/zookeeper-3.4.6/bin(也可在任意目录,因为配置了环境变量)执行命令:zkServer.sh start (注意这里3台机器都要进行启动,启动之后可以查看状态)查看状态:zkServer.sh status (在三个节点上检验zk的mode, 会看到一个leader和俩个follower),单节点的状态会看到(standalone 独立的)集群关闭:zkServer.sh stop## 默认端口是2181## 输入jpsQuorumPeerMain :代表zk
1.2 配置开机自启动
cd /etc/rc.d/init.d/touch zookeeperchmod 777 zookeepervim zookeeper开机启动zookeeper脚本:#!/bin/bash#chkconfig:2345 20 90#description:zookeeper#processname:zookeeperexport JAVA_HOME=/usr/local/jdk1.8export PATH=$JAVA_HOME/bin:$PATHcase $1 instart) /usr/local/zookeeper-3.4.6/bin/zkServer.sh start;;stop) /usr/local/zookeeper-3.4.6/bin/zkServer.sh stop;;status) /usr/local/zookeeper-3.4.6/bin/zkServer.sh status;;restart) /usr/local/zookeeper-3.4.6/bin/zkServer.sh restart;;*) echo "require start|stop|status|restart" ;;esac开机启动配置:chkconfig zookeeper on验证:chkconfig --add zookeeperchkconfig --list zookeeper这个时候我们就可以用servicezookeeper start/stop来启动停止zookeeper服务了使用chkconfig--add zookeeper命令把zookeeper添加到开机启动里面添加完成之后接这个使用chkconfig--list 来看看我们添加的zookeeper是否在里面如果上面的操作都正常的话;你就可以重启你的linux服务器了
1.3 本机启动zk
## 下载Zookeeper最新版,http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.5/## 配置 /usr/local/apache-zookeeper-3.5.5-bin/conf将zoo_sample.cfg 复制一份命名为zoo.cfg,也可以修改下数据存储节点,默认的也OK## 启动Zookeepercd /usr/local/apache-zookeeper-3.5.5-bin/binMac执行命令行执行 ./zkServer.sh startWindows同学执行对应的cmd文件本地如果启动失败,可能是因为没有权限使用: sudo ./zkServer.sh start## 启动完成以后出现这个就代表着启动成功ZooKeeper JMX enabled by defaultUsing config: /usr/local/apache-zookeeper-3.5.5/bin/../conf/zoo.cfgStarting zookeeper ... STARTED## 进入客户端,运行验证命令: ./zkCli.sh也可能没有权限进入失败使用: sudo ./zkCli.sh最后打印出一堆东西最后一行是WatchedEvent state:SyncConnected type:None path:null## 关闭Zookeeper./zkServer.sh stop
1.4 zk客户端常见命令
## 进入客户端zkCli.sh## 查找ls /ls /zookeeper## 创建并赋值,前者是节点名称,后者是节点存储的值create /imooc zookeeper## 获取get /imooc## 重新设置值set /imooc zookeeper1314## 删除节点delete /imooc
2. 理论知识
![]() |
1. zk是一个树形文件结构,比较像目录结构 1. 红色节点 1. 持久节点,zk的会话结束,重启都不会消失,除非手动删除 3. 黄色节点 1. 瞬时节点,zk重启或者连接的会话断开都会消失 1. 它不允许有子节点 1. 有序:创建这些节点,它的名称是会按照序号排序的 |
|---|---|

