下载地址
https://archive.apache.org/dist/zookeeper/zookeeper-3.5.6/
第一次下载zookeeper根据学习修改了,zoo.cfg的文件但是还是出现了org.apache.zookeeper.server.quorum.QuorumPeerMainm,而且其他没有做修改,查看百度无果,上google查找终于发现了原来zookeeper在3.5.5之后在下载的时候应该下载带bin的文件,而之前的普通的tar.gz的包里面是只是源码的包无法直接使用
参考文档:
https://www.jianshu.com/p/ed6ec88b01c3
安装环境
系统版本 | centos7.7 |
zookeeper版本 | apache-zookeeper-3.5.6-bin.tar.gz |
jdk版本 | openjdk1.8 |
配置参数详解(主要是%ZOOKEEPER_HOME%/conf/zoo.cfg文件)
https://www.cnblogs.com/xiohao/p/5541093.html
Zookeeper 目录结构
1. bin:放置运行脚本和工具脚本,如果是 Linux 环境还会有有 zookeeper 的运 行日志 zookeeper.out
2. conf:zookeeper 默认读取配置的目录,里面会有默认的配置文件
3. contrib:zookeeper 的拓展功能
4. dist-maven:zookeeper的 maven 打包目录
5. docs:zookeeper 相关的文档
6. lib:zookeeper 核心的 jar
7. recipes:zookeeper 分布式相关的 jar 包
8. src:zookeeper 源码
zookeeper单点安装
首先安装openjdk
yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.6/apache-zookeeper-3.5.6-bin.tar.gz
tar xf apache-zookeeper-3.5.6-bin.tar.gz
mv apache-zookeeper-3.5.6-bin /usr/local/
ln -s /usr/local/apache-zookeeper-3.5.6-bin/ zookeeper
export PATH=$PATH:/usr/local/zookeeper/bin/
JAVA_HOME=/usr/local/java/jdk1.8
JRE_HOME=/usr/local/java/jdk1.8/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
mkdir /usr/local/zookeeper/log_snapshot #快照日志目录
mkdir /usr/local/zookeeper/log_transaction #事务日志目录
dataDir=/usr/local/zookeeper/log_snapshot
dataLogDir=/usr/local/zookeeper/log_transaction
服务管理命令:zkServer.sh start|stop|restart|status
客户端连接:zkCli.sh -server ${ip}:${port}
zkCli.sh -server 10.77.20.23:2181
临时节点(EPHEMERAL):临时创建的,会话结束节点自动被删除,也可以手动删除,临时节点不能拥有子节点
临时顺序节点(EPHEMERAL_SEQUENTIAL):具有临时节点特征,但是它会有序列号,分布式锁中会用到该类型节点
持久节点(PERSISTENT):创建后永久存在,除非主动删除。
create -s /zk-test 123 # -e参数为创建临时节点,如果不带参数则创建持久节点#为节点的名字,为节点的内容
connect host:port - 连接其他的 ZooKeeper 应用。
ls path - 列表路径下的资源。在 ZooKeeper 控制台客户端中,没有默认列表功能,必须 指定要列表资源的位置。 如: ls / ; ls /path 等。
create [-e] [-s] path data - 创建节点,如:
create /test 123 创建一个/test 节点,节点携 带数据信息 123。
create -e /test 123 创建一个临时节点/test,携带数据为 123,临时节点只 在当前会话生命周期中有效,会话结束节点自动删除。
get path - 查看指定节点的数据。 如: get /test。结果如下:
集群内节点只要不宕掉一半,zookeeper就不会出现问题,等于是,节点越多,越安全
vim /usr/local/zookeeper/conf/zoo.cfg
server.1=172.26.103.56:2881:3881
server.2=172.26.103.57:2881:3881
server.3=172.26.103.58:2881:3881
A:表示 Flower 跟 Leader的通信端口,简称服务端内部通信的端口(默认2888)
/usr/local/zookeeper/bin/zkServer.sh start
/usr/local/zookeeper/bin/zkServer.sh status
export PATH=$PATH:/usr/local/zookeeper/bin/
zookeeper最近的版本中有个内嵌的管理控制台是通过jetty启动,也会占用8080 端口。
修改方法的方法有两种,一种是在启动脚本中增加 -Dzookeeper.admin.serverPort=你的端口号.一种是在zoo.cfg中增加admin.serverPort=没有被占用的端口号