这里我以zookeeper3.4.10.tar.gz来演示安装,安装到/usr/local/soft目录下。

一.单机版配置

1.安装和配置

#.下载
wget http://apache.fayea.com/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
#.解压
tar -zxvf zookeeper3.4.10.tar.gz #.在zookeeper-3.4./conf目录下创建目录:
mkdir data
mkdir logs #.将zookeeper3.4.10/conf目录下的zoo_sample.cfg 文件拷贝一份,命名为为zoo.cfg
cp zoo_sample.cfg zoo.cfg #.修改zoo.cfg配置文件
vim zoo.cfg
#修改为上面创建的目录
dataDir=/usr/local/soft/zookeeper-3.4./data
#【该配置项为优化项,用于单独存放事务日志。参考官方文档】
dataLogDir=/usr/local/soft/zookeeper-3.4./logs

说明: 
dataDir是快照存储的目录。配置文件中已经明确说明不要使用/tmp来存储,/tmp在这里仅仅是为了演示的目的。 
dataLogDir是一个优化项,可以参考官方说明:优化

大致意思是:指明一个明确的事务日志目录可以在更新时降低延迟。默认的事务日志存放位置与data快照和myid文件存放位置相同。使用dataLogDir参数就可以指定一个不同的目录。

2.配置环境变量(可选)

配置环境变量后,则可在bin目录之外直接使用相应的命令。

#打开配置
vim /etc/profile #在文件尾加入以下内容
export ZOOKEEPER_HOME=/usr/local/soft/zookeeper-3.4.
export PATH=$PATH:$ZOOKEEPER_HOME/bin #刷新配置
source /etc/profile

3.启动(不要使用root用户启动)

#启动
zkServer.sh start
#停止
zkServer.sh stop
#查看运行状态
zkServer.sh status

运行状态中standalone表明当前为单节点模式。

4.设置开机启动(可选。生产环境下需要) 
设置开机启动有两种方式,分别对应/etc/rc.d目录下的init.d目录和rc.local文件。

说明: 由于linux建立了软链接init.d -> rc.d/init.d,rc.local -> rc.d/rc.local的缘故,所以/etc/rc.d/init.d可以简写为/etc/init.d,同样/etc/rc.d/rc.local可简写为/etc/rc.local
①方式一:开机启动脚本 
该方式类似于windows的’启动’目录,里面的批处理文件会在系统启动后自动运行。对应/etc/rc.d/init.d目录。 
打开/etc/rc.d/rc.local文件,加入以下内容

#以非root用户来启动脚本
su - 用户名 -c '/usr/local/soft/zookeeper-3.4.10/zkServer.sh start'

然后,重启试试。

②方式二:开机自启动服务服务

另一种是做成开机自启动服务,这类似于windows中的系统服务,这些服务会在系统启动时自动启动。对应/etc/rc.d/rc.local文件。

#进入/etc/rc.d/init.d目录
cd /etc/rc.d/init.d
#创建zookeeper文件(每个服务对应一个文件),并授予执行权限
touch zookeeper
chomod +x zookeeper #编辑zookeeper文件(创建zookeeper服务)
vim zookeeper
加入如下内容(这里使用的是root用户)
#!/bin/bash
#chkconfig:
#description:zookeeper
#processname:zookeeper
case $ in
start) su root /usr/local/soft/zookeeper-3.4./bin/zkServer.sh start;;
stop) su root /usr/local/soft/zookeeper-3.4./bin/zkServer.sh stop;;
status) su root /usr/local/soft/zookeeper-3.4./bin/zkServer.sh status;;
restart) su root /usr/local/soft/zookeeper-3.4./bin/zkServer.sh restart;;
*) echo "require start|stop|status|restart" ;;
esac #将zookeeper服务添加到开机启动项
chkconfig –add zookeeper
#查看开机自启项中是否已有zookeeper服务
chkconfig --list
#重启系统试试
#测试服务
service zookeeper start/stop/restart/status

二、配置参数说明

1.tickTime:
Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。
tickTime=2000

2.initLimit:Leader-Follow初始通信时限
集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。启动有快有慢,超过该值则认为启动失败。
initLimit=5

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

4.dataDir:数据文件目录
Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里。
dataDir=/home/michael/opt/zookeeper/data

5.clientPort:客户端连接端口
客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
clientPort=2181

6.服务器名称与地址:集群信息(服务器编号,服务器地址,LF通信端口,选举端口)
这个配置项的书写格式比较特殊,规则如下:
server.N=YYY:A:B

server.1=test05:2888:3888
server.2=test06:2888:3888
server.3=test07:2888:3888

三、集群版配置

为了高可用,通常会配置zookeeper集群。Zookeeper集群中只要有过半的节点是正常的情况下,那么整个集群对外就是可用的。正是基于这个特性,要将ZK集群的节点数量要为奇数(2n+1:如3、5、7个节点)较为合适。

以下是由三台zookeeper组成的集群的配置。
1.添加配置
只需要在前面单机配置的基础上,在配置文件追加如下内容

#服务器编号,服务器地址,Leader-Follow通信端口,选举端口
server.=test01::
server.=test02::
server.=test03::

说明:服务器地址可以直接写成ip形式,但推荐使用了ip与主机名绑定形式。 
只需在/etc/hosts文件中添加:

# zookeeper servers
192.168.8.88 test01

2.验证集群 
分别启动三个zookeeper节点,查看运行状态。

zkServer.sh status

如果集群正常,则三台zookeeper都不再是standalone模式,而是会有一个leader模式和两个follower模式。其中leader是由zookeeper的选举策略选举产生的。

最新文章

  1. CSS元素居中的常用方法
  2. 超简单的js数字验证
  3. C#根据时间产生有序的GUID编码
  4. Python多行注释
  5. POJ 2418
  6. C# 语音识别
  7. hadoop对于压缩文件的支持及算法优缺点
  8. SQL性能优化之一
  9. win7 清理系统
  10. 检查ORACLE的警告文件的脚本
  11. Sumsets(3sum问题,枚举d,c二分a+b)
  12. 35W行数据的文本文件,每500行添加4个换行符。代码实现思路
  13. Elasticsearch-sql 用SQL查询Elasticsearch
  14. PA 项目创建任务
  15. Vue 组件&组件之间的通信 父子组件的通信
  16. Django开发目录
  17. 根据CPU核心数确定线程池并发线程数
  18. Linux shell脚本 批量创建多个用户
  19. lsync目录文件实时同步工具
  20. Shell学习笔记:<<EOF子命令

热门文章

  1. [论文笔记] Fine-Grained Head Pose Estimation Without Keypoints
  2. python jieba分词(结巴分词)、提取词,加载词,修改词频,定义词库 -转载
  3. WINDOWS API 大全(二)
  4. Django信号量
  5. 浅谈防火墙对FTP的影响及故障排除
  6. 1.parrot os 3.5-----nmap-----katoolin--zenmap
  7. Anaconda版本
  8. 多线程17-Async Programming Model
  9. [2019上海网络赛F题]Rhyme scheme
  10. 【WPS/Visio】WPS word无法复制或编辑Visio对象