zookeeper集群搭建流程

下载jdk

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

分别解压到三台服务器指定目录

如/data//jdk1.8.0_191

配置jdk环境变量

vi /etc/profile

插入


JAVA_HOME=/data/aics/jdk1.8.0_191

CLASSPATH=$JAVA_HOME/lib/

PATH=$PATH:$JAVA_HOME/bin

export PATH JAVA_HOME CLASSPATH


source /etc/profile

下载zookeeper

http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/

安装脚本


#!/usr/bin/env bash

set -x

zkpath=/data/zookeeper-3.4.10.tar.gz 

ipath=/data

num="1" 

ipaddress1="192.168.117.128"

ipaddress2="192.168.117.129" 

ipaddress3="192.168.117.130"   


if  [ ! -e $ipath  ] ; then 

echo "路径不存在,创建安装路径!" 

mkdir -p  $ipath 

fi 


echo "解压zk到指定目录下!"   

tar -zxvf $zkpath -C $ipath 

echo "解压完毕!" 


cd $ipath 

mv zookeeper-3.4.10 zookeeper 

confpath=$ipath"/zookeeper" 

cd $confpath 

mkdir data 


cd data 

echo $num >> myid 

echo "生成myid文件......." 

cd $confpath"/conf" 

mv zoo_sample.cfg zoo.cfg 


sed -i -e "s|dataDir=/tmp/zookeeper|dataDir=${confpath}/data|" zoo.cfg

echo "server.1=$ipaddress1:2888:3888" >> zoo.cfg

echo "server.2=$ipaddress2:2888:3888" >> zoo.cfg 

echo "server.3=$ipaddress3:2888:3888" >> zoo.cfg 


echo "写入zoo.cfg文件成功!" 

pid=`ps -ef | grep  zookeeper | gawk '{ print $2}' | head -n 1` 


echo "zk进程号: $pid" 

#检查进程号是否为空 

if [ ! -z $pid  ] ; then 

kill  $pid 

echo "检测到zookeeper进程存在,已关闭!" 

fi 

echo "开始启动zk....." 

cd .. 

bin/zkServer.sh start 

echo "启动完成....查看zookeeper状态" 

bin/zkServer.sh status

 分别解压到三台服务器指定目录

比如`/data/zookeeper/zookeeper-3.4.10`

如三台服务器地址分别为:`192.168.117.128;192.168.117.129;192.168.117.130`

配置ZooKeeper

cp /data/zookeeper/zookeeper-3.4.10/conf/zoo_sample.cfg /data/zookeeper/zookeeper-3.4.10/conf/zoo.cfg

每个`zoo.cfg`配置

`/data/zookeeper/zookeeper-3.4.10/conf/zoo.cfg`内容:


#######The number of milliseconds of each tick

tickTime=2000

#######The number of ticks that the initial

#######synchronization phase can take

initLimit=10

#######The number of ticks that can pass between

#######sending a request and getting an acknowledgement

syncLimit=5

#######the directory where the snapshot is stored.

#######do not use /tmp for storage, /tmp here is just

#######example sakes.

#######dataDir=/tmp/zookeeper

dataDir=/data/aics/zookeeper/data

#######the port at which the clients will connect

clientPort=2181

server.1=192.168.117.128:2888:3888

server.2=192.168.117.129:2888:3888

server.3=192.168.117.130:2888:3888

在每台服务器执行如下命令

mkdir -p /data/zookeeper/data

在每个dataDir对应目录下新建myid文件

cd /data/zookeeper/data

`192.168.117.128`服务器上执行命令`echo '1'>myid`

`192.168.117.129`服务器上执行命令`echo '2'>myid `

`192.168.117.130`服务器上执行命令`echo '3'>myid `

开启端口

`firewall-cmd --zone= public --add-port=2181/tcp --permanent`

`firewall-cmd --zone= public --add-port=2888/tcp --permanent`

`firewall-cmd --zone= public --add-port=3888/tcp --permanent`

启动服务

切换到zooKeeper bin目录下执行命令:`./zkServer.sh start`

验证服务

三台服务器都启动后执行命令:`./zkServer.sh status`


zookeeper集群搭建流程_第1张图片


zookeeper集群搭建流程_第2张图片


zookeeper集群搭建流程_第3张图片

你可能感兴趣的:(zookeeper集群搭建流程)