一 软件工具
1.JDK1.8+ (JDK环境变量配置这里不做记录,点击这里可查看)
4.准备三台不同的ip机器, 我的分别是 192.168.209.130 , 192.168.209.131 , 192.168.209.132
二 在 192.168.209.130 上传文件及修改配置
1.上传文件至:
/usr/local/
2.解压:
tar -zxvf zookeeper-3.3.6.tar.gz
3.重新命名文件夹:
mv zookeeper-3.3.6.tar.gz zookeepe
4.切换至文件夹 :
cd /usr/local/zookeepe/conf
5.复制重命名文件:
cp zoo_sample.cfg zoo.cfg
6.使用vi修改zoo.cfg:
vi zoo.cfg
7.在文件末尾处按o进入编辑模式,修改内容如下;
(1) dataDir=/usr/local/zookeeper/data(注意同时在zookeeper创建data目录)
(2)最后面添加
server.0=192.168.209.130:2888:3888
server.1=192.168.209.131:2888:3888
server.2=192.168.209.132:2888:3888
8.按esc键退出编辑模式 , 按wq! + enter键保存退出.
9.cd /usr/local/zookeeper/data
10.touch myid
11.vi myid , 添加内容为数字 0 (用来做服务标识)保存并退出.
然后把/usr/local/zookeeper文件夹拉到本地,再分别上传到 192.168.209.131,192.168.209.132 服务器,myid 内容依次修改为 1 , 2 ;
三 配置环境变量(ZOOKEEPER环境配置)
vi /etc/profile
# 配置zookeeper环境变量
export ZOOKEEPER_HOME=/usr/local/zookeeper
# 配置JDK变量环境
export JAVA_HOME=/usr/local/jdk1.8.0_131
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
export CLASSPATH=./:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
四 启动zookeeper
分别进入三台服务器执行一下操作;
cd /usr/local/zookeeper/bin
授权执行权限 chmod 777 *.sh
zkServer.sh start
状态: zkServer.sh status(在三个节点上检验zk的mode,一个leader和俩个follower)
我的主节点是192.168.209.132,如图;
Zookeeper配置文件介绍
tickTime:心跳时间,为了确保连接存在的,以毫秒为单位,最小超时时间为两个心跳时间
initLimit:多少个心跳时间内,允许其他server连接并初始化数据,如果ZooKeeper管理的数据较大,则应相应增大这个值
clientPort:服务的监听端口
dataDir:用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件夹里(注意:一个配置文件只能包含一个dataDir字样,即使它被注释掉了。)
dataLogDir:用于单独设置transaction log的目录,transaction log分离可以避免和普通log还有快照的竞争
syncLimit:多少个tickTime内,允许follower同步,如果follower落后太多,则会被丢弃。
server.A=B:C:D:
A是一个数字,表示这个是第几号服务器;
B是这个服务器的ip地址
C第一个端口用来集群成员的信息交换,表示的是这个服务器与集群中的Leader服务器交换信息的端口
D是在leader挂掉时专门用来进行选举leader所用
使用JAVA连接操作zookeeper的demo如下 包含apache和Zkclient的API
链接:https://pan.baidu.com/s/163liIYgsS1zAKK9Og5TIlg
提取码:gffe