ZK集群的安装和使用

Windows Windows 2个月前 (08-15) 16次浏览 未收录 0个评论 扫描二维码

Zkserver的安装:

Cd /software

wget https://mirrors.shu.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

tar xzvf zookeeper-3.4.10.tar.gz -C /usr/local/

cd /usr/local/

ln -sv zookeeper-3.4.10/ zookeeper

cd zookeeper

cp -r zoo_sample.cfg zoo.cfg

vim /etc/profile.d/zk.sh

ZK_HOME=/usr/local/zookeeper/

PATH=$PATH:$ZK_HOME/bin

export ZK_HOME PATH

Source /etc/profile

ZK集群配置文件修改

配置zoo.cfg文件 vim /usr/local/zookeeper/zoo.cfg

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/usr/local/zookeeper/data

dataLogDir=/usr/local/zookeeper/logs

clientPort=2181

autopurge.snapRetainCount=500

autopurge.purgeInterval=24

server.1= 10.83.64.102:2888:3888

server.2= 10.83.64.101:2888:3888

server.3= 10.83.64.105:2888:3888

除了修改zoo.cfg配置文件外,zookeeper集群模式下还要配置一个myid文件,这个文件需要放在dataDir目录下

Mkdir -p /usr/local/zookeeper/{data,logs}

echo “1” >/usr/local/zookeeper/data/myid

tickTime这个时间是作为zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是说每个tickTime时间就会发送一个心跳。

initLimit这个配置项是用来配置zookeeper接受客户端(这里所说的客户端不是用户连接zookeeper服务器的客户端,而是zookeeper服务器集群中连接到leader的follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。

当已经超过10个心跳的时间(也就是tickTime)长度后 zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20秒。

syncLimit这个配置项标识leader与follower之间发送消息,请求和应答时间长度,最长不能超过多少个tickTime的时间长度,总的时间长度就是5*2000=10秒。

dataDir顾名思义就是zookeeper保存数据的目录,默认情况下zookeeper将写数据的日志文件也保存在这个目录里;

clientPort这个端口就是客户端连接Zookeeper服务器的端口,Zookeeper会监听这个端口接受客户端的访问请求;

server.A=B:C:D中的A是一个数字,表示这个是第几号服务器,B是这个服务器的IP地址,C第一个端口用来集群成员的信息交换,表示这个服务器与集群中的leader服务器交换信息的端口,D是在leader挂掉时专门用来进行选举leader所用的端口。

3.3、创建ServerID标识

除了修改zoo.cfg配置文件外,zookeeper集群模式下还要配置一个myid文件,这个文件需要放在dataDir目录下。

这个文件里面有一个数据就是A的值(该A就是zoo.cfg文件中server.A=B:C:D中的A),在zoo.cfg文件中配置的dataDir路径中创建myid文件。

#在192.168.1.148服务器上面创建myid文件,并设置值为1,同时与zoo.cfg文件里面的server.1保持一致,#在192.168.1.149服务器上面创建myid文件,并设置值为1,同时与zoo.cfg文件里面的server.2保持一致,如下

echo "2" > /opt/zookeeper/data/myid

#在192.168.1.150服务器上面创建myid文件,并设置值为1,同时与zoo.cfg文件里面的server.3保持一致,如下

echo "3" > /opt/zookeeper/data/myid

到此,相关配置已完成

配置启动服务文件

Vim /etc/init.d/zk

#!/bin/bash

#

# elasticsearch

#

# chkconfig: 2345 90 30

# description: Starts and stops a single elasticsearch instance on this system

#

### BEGIN INIT INFO

# Provides: Elasticsearch

# Required-Start: $network $named

# Required-Stop: $network $named

# Default-Start: 2 3 4 5

# Default-Stop: 0 1 6

# Short-Description: This service manages the elasticsearch daemon

# Description: Elasticsearch is a very scalable, schema-free and high-performance search solution supporting multi-tenancy and near realtime search.

### END INIT INFO

pid_num=$(ps aux |grep zookeeper|grep -v grep|awk ‘{print $2}’)

start() {

nohup /usr/local/zookeeper/bin/zkServer.sh start >/dev/null 2>&1 &

}

stop() {

if [ `ps aux |grep zookeeper|grep -v grep|wc -l` -eq 1 ];then

kill -9 ${pid_num}

fi

}

status() {

if [ `ps aux |grep zookeeper|grep -v grep|wc -l` -eq 1 ];then

echo “zookeeper service is starting”

/usr/local/zookeeper/bin/zkServer.sh status

else

echo “zookeeper service is stoping”

fi

}

case $1 in

start)

start

;;

stop)

stop

;;

status)

status

;;

*)

echo “service accept arguments start|stop|status”

esac

Chkconfig –add zk

Chkconfig zk on

Service zk status

Service zk start

Service zk stop

喜欢 (0)
[]
分享 (0)
关于作者:
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址