三台机器安装zookeeper集群
注意事项:安装前三台机器一定要保证时钟同步
说明:
- 我这里是有3台服务器,分别hostname为node01、node02、node03。
- 三台机器已经配置好了ssh。
- zookeeper使用的是cdh5的zookeeper包,没有使用原生zookeeper项目的包。
- 三台机器已经进行了时钟同步。
下载zookeeeper的压缩包,我下载的版本为:zookeeper-3.4.5-cdh5.14.2.tar.gz
将压缩包上传到的node01的/book/soft路径下
1、解压
解压node01执行以下命令解压zookeeper的压缩包到node01服务器的/book/install路径下去,然后准备进行安装
cd /book/soft
tar -zxvf zookeeper-3.4.5-cdh5.14.2.tar.gz -C /book/install/
2、修改配置文件
第一台机器依次执行下面的修改配置文件
# 到对应的配置路径下
cd /book/install/zookeeper-3.4.5-cdh5.14.2/conf
# 创建一个存储zookeeper数据的目录
mkdir -p /book/install/zookeeper-3.4.5-cdh5.14.2/zkdatas
# 拷贝一份配置文件
cp zoo_sample.cfg zoo.cfg
# 打开要修改的配置文件
vim zoo.cfg
修改的内容如下:
dataDir=/book/install/zookeeper-3.4.5-cdh5.14.2/zkdatas
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
server.1=node01:2888:3888
server.2=node02:2888:3888
server.3=node03:2888:3888
解释:
server.A=B:C:D, A代表服务器的编号,与下面的对应下面的myid, B是集群的各个IP地址,C:D 是端口配置
3、添加myid配置
在第一台机器的/book/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/路径下创建一个文件,文件名为myid ,文件内容为1,执行如下命令即可
echo 1 > /book/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/myid
4、安装包分发并修改myid的值
安装包分发到其他机器,第一台机器上面执行以下两个命令,不过前提条件是3台服务器已经配置好了ssh
scp -r /book/install/zookeeper-3.4.5-cdh5.14.2/ node02:/book/install/
scp -r /book/install/zookeeper-3.4.5-cdh5.14.2/ node03:/book/install/
第二台机器上修改myid的值为2,执行以下命令即可
echo 2 > /book/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/myid
第三台机器上修改myid的值为3,执行以下命令即可
echo 3 > /book/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/myid
5、配置环境变量
三台节点都配置/etc/profile文件
# zookeeper
export ZK_HOME=/book/install/zookeeper-3.4.5-cdh5.14.2
export PATH=$PATH:$ZK_HOME/bin
三台节点执行以下命令,让新添环境变量生效
source /etc/profile
6、三台机器启动zookeeper服务
三台机器执行下面命令
/book/install/zookeeper-3.4.5-cdh5.14.2/bin/zkServer.sh start
查看启动状态
/book/install/zookeeper-3.4.5-cdh5.14.2/bin/zkServer.sh status
使用nohub开启,做了个小优化
zookeeper服务开启使用nohub,在每次开启之后会在开启服务的路径生成日志文件zookeeper.out, 所以我们在三台机器下的zookeeper的安装目录下创建一个logs文件
mkdir /book/install/zookeeper-3.4.5-cdh5.14.2/logs
然后启动时切换到此路径下,然后如下命令启动服务:
# 开启
cd /book/install/zookeeper-3.4.5-cdh5.14.2/logs && /book/install/zookeeper-3.4.5-cdh5.14.2/bin/zkServer.sh start
7、关闭zookeeper
三个节点都运行下命命令
zkServer.sh stop
8、使用脚本启停zookeeper
创建脚本
vim /home/book/bin/zkshell.sh
添加内容,注意内容修改为你自己对应安装的路径
#!/bin/bash
case $1 in
"start" ){
start_params="cd /book/install/zookeeper-3.4.5-cdh5.14.2/logs && zkServer.sh $1"
for (( i=1 ; i <= 3 ; i = $i + 1 )) ; do
echo ============= node0$i $start_params =============
ssh node0$i "source /etc/profile;$start_params"
done
};;
"stop"){
stop_params="zkServer.sh $1"
for (( i=1 ; i <= 3 ; i = $i + 1 )) ; do
echo ============= node0$i $stop_params =============
ssh node0$i "source /etc/profile;$stop_params"
done
};;
esac
修改文件权限,使其成为可执行文件
chmod 777 /home/book/bin/zkshell.sh
启动zookeeper集群
zkshell.sh start
关闭zookeeper集群
zkshell.sh stop