zookeeper 安装配置

1. 安装zookeeper并启动

1.1 、 下载地址  https://zookeeper.apache.org/releases.html

1.2、 bin目录zk的可执行脚本目录,包括zk服务进程,zk客户端,等脚本。其中,.sh是Linux环境下的脚本,.cmd是Windows环境下的脚本。 lib目录zk依赖的包。 libexec目录一些用于操作zk的工具包。conf目录是zk配置文件目录

1.3、 运行配置

在etc/zookeeper/目录下提供了zoo.cfg,打开zoo.cfg,可以看到默认的一些配置。

tickTime
时长单位为毫秒,为zk使用的基本时间度量单位。例如,1 * tickTime是客户端与zk服务端的心跳时间,2 * tickTime是客户端会话的超时时间。
tickTime的默认值为2000毫秒,更低的tickTime值可以更快地发现超时问题,但也会导致更高的网络流量(心跳消息)和更高的CPU使用率(会话的跟踪处理)。

1. 安装zookeeper并启动

1.1 、 下载地址  https://zookeeper.apache.org/releases.html

1.2、 bin目录zk的可执行脚本目录,包括zk服务进程,zk客户端,等脚本。其中,.sh是Linux环境下的脚本,.cmd是Windows环境下的脚本。 lib目录zk依赖的包。 libexec目录一些用于操作zk的工具包。conf目录是zk配置文件目录

1.3、 运行配置

在etc/zookeeper/目录下提供了zoo.cfg,打开zoo.cfg,可以看到默认的一些配置。

tickTime
时长单位为毫秒,为zk使用的基本时间度量单位。例如,1 * tickTime是客户端与zk服务端的心跳时间,2 * tickTime是客户端会话的超时时间。
tickTime的默认值为2000毫秒,更低的tickTime值可以更快地发现超时问题,但也会导致更高的网络流量(心跳消息)和更高的CPU使用率(会话的跟踪处理)。

zookeeper有单机、伪集群、集群三种部署方式,可根据自己对可靠性的需求选择合适的部署方式。下边对这三种部署方式逐一进行讲解。

一、单机安装
1.1 下载

进入要下载的版本的目录,选择.tar.gz文件下载

下载链接:http://archive.apache.org/dist/zookeeper/

1.2 安装

使用tar解压要安装的目录即可,以3.4.5版本为例

这里以解压到/home/ubuntu/www/program,实际安装根据自己的想安装的目录修改(注意如果修改,那后边的命令和配置文件中的路径都要相应修改)

tar -zxf zookeeper-3.4.5.tar.gz -C /home/ubuntu/www/program


1.3 配置

在主目录下创建data和logs两个目录用于存储数据和日志:

cd /home/ubuntu/www/program/zookeeper-3.4.5
mkdir data
mkdir logs


在conf目录下新建zoo.cfg文件,写入以下内容保存:

tickTime=2000
dataDir=/home/ubuntu/www/program/zookeeper-3.4.5/data
dataLogDir=/home/ubuntu/www/program/zookeeper-3.4.5/logs
clientPort=2181


1.4 启动和停止

进入bin目录,启动、停止、重启分和查看当前节点状态(包括集群中是何角色)别执行:

./zkServer.sh start
./zkServer.sh stop
./zkServer.sh restart
./zkServer.sh status


二、伪集群模式
伪集群模式就是在同一主机启动多个zookeeper并组成集群,下边以在192.168.1.100主机上创3个zookeeper组集群为例。

将通过第一大点安装的zookeeper,复制成zookeeper1/zookeeper2/zookeeper3三份

2.1 zookeeper1配置

zookeeper1配置文件conf/zoo.cfg修改如下:

tickTime=2000
dataDir=/home/ubuntu/www/program/zookeeper1/data
dataLogDir=/home/ubuntu/www/program/zookeeper1/logs
clientPort=2181
initLimit=5
syncLimit=2
server.1=192.168.1.100:2888:3888
server.2=192.168.1.100:4888:5888
server.3=192.168.1.100:6888:7888


zookeeper1的data/myid配置如下:

echo '1' > data/myid


2.2 zookeeper2配置

zookeeper2配置文件conf/zoo.cfg修改如下:

tickTime=2000
dataDir=/home/ubuntu/www/program/zookeeper2/data
dataLogDir=/home/ubuntu/www/program/zookeeper2/logs
clientPort=3181
initLimit=5
syncLimit=2
server.1=192.168.1.100:2888:3888
server.2=192.168.1.100:4888:5888
server.3=192.168.1.100:6888:7888


zookeeper2的data/myid配置如下:

echo '2' > data/myid


2.3 zookeeper3配置

zookeeper3配置文件conf/zoo.cfg修改如下:

tickTime=2000
dataDir=/home/ubuntu/www/program/zookeeper3/data
dataLogDir=/home/ubuntu/www/program/zookeeper3/logs
clientPort=4181
initLimit=5
syncLimit=2
server.1=192.168.1.100:2888:3888
server.2=192.168.1.100:4888:5888
server.3=192.168.1.100:6888:7888


 zookeeper3的data/myid配置如下:

echo '3' > data/myid
最后使用1.4的命令把三个zookeeper都启动即可,启动顺序随意没要求。

三、集群模式
集群模式就是在不同主机上安装zookeeper然后组成集群的模式;下边以在192.168.1.100/129/130三台主机为例。

将第1.1到1.3步中安装好的zookeeper打包复制到129和130上,并都解压到同样的目录下。

3.1 conf/zoo.cfg文件修改

三个zookeeper的conf/zoo.cfg修改如下:

tickTime=2000
dataDir=/home/ubuntu/www/program/zookeeper-3.4.5/data
dataLogDir=/home/ubuntu/www/program/zookeeper-3.4.5/logs
clientPort=2181
initLimit=5
syncLimit=2
server.1=192.168.1.100:2888:3888
server.2=192.168.1.101:2888:3888
server.3=192.168.1.102:2888:3888


对于129和130,由于安装目录都是zookeeper-3.4.5所以dataDir和dataLogDir不需要改变,又由于在不同机器上所以clientPort也不需要改变

所以此时129和130的conf/zoo.cfg的内容与128一样即可。

3.2 data/myid文件修改

128 data/myid修改如下:

echo '1' > data/myid
129 data/myid修改如下:

echo '2' > data/myid
130 data/myid修改如下:

echo '3' > data/myid
最后使用1.4的命令把三个zookeeper都启动即可,启动顺序随意没要求。

四、报错及处理
应用连接zookeepr报错:Session 0x0 for server 192.168.1.100/192.168.1.100:2181,unexpected error,closing socket connection and attempting reconnect;

                                        先看端口能否telnet通,如果通则使用./zkServer.sh status查看zk是否确实已启动,没启查看bin/zookeeper.out中的报错。

bin/zookeeper.out中报错:“zookeeper address already in use”;显然端口被占用,要么是其他进程占用了配置的端口,要么是上边配置的clientPort和server中的端口有重复。

bin/zookeeper.out中报错:Cannot open channel to 2 at election address /192.168.1.102:3888;这应该只是组成集群的130节点未启动,到130启动起来zk即会正常。

clientPort
zk服务进程监听的TCP端口,默认情况下,服务端会监听2181端口。

1

clientPort=2181

dataDir
无默认配置,必须配置,用于配置存储快照文件的目录。如果没有配置dataLogDir,那么事务日志也会存储在此目录。

1

2

dataDir=/home/ubuntu/www/program/zookeeper/data

dataLogDir=/home/ubuntu/www/program/zookeeper/logs

1.4、 启动和停止

在bin目录下执行: 

./zkServer.sh start
./zkServer.sh stop
./zkServer.sh restart
./zkServer.sh status


 

 

clientPort
zk服务进程监听的TCP端口,默认情况下,服务端会监听2181端口。

1

clientPort=2181

dataDir
无默认配置,必须配置,用于配置存储快照文件的目录。如果没有配置dataLogDir,那么事务日志也会存储在此目录。

1

2

dataDir=/usr/local/var/run/zookeeper/data

dataLogDir=/usr/local/var/run/zookeeper/logs

1.4、 启动和停止

在bin目录下执行: 

./zkServer.sh start
./zkServer.sh stop
./zkServer.sh restart
./zkServer.sh status

猜你喜欢

转载自blog.csdn.net/jared_he2017/article/details/84284193