一 软件工具

1.JDK1.8+ (JDK环境变量配置这里不做记录,点击这里可查看)

2.zookeeper-3.3.6.tar.gz

3.centos6.9

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