一、下载并解压zookeeper。
可以从https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ 这里下载最新的zookeeper镜像
mkdir /usr/local/zookeeper
cd /usr/local/zookeeper
tar -zxvf zookeeper-3.4.8.tar.gz
二、创建快照日志目录和事务日志目录
mkdir zkdata zkdataLog
三、复制配置文件
cd zookeeper-3.4.8/
cp conf/zoo_sample.cfg conf/zoo.cfg
四、修改配置文件
dataDir=/usr/local/zookeeper/zkdata
dataLogDir=/usr/local/zookeeper/zkdataLog #这一行是新添加的
server.1=192.168.1.145:2888:3888
server.2=192.168.1.150:2888:3888
这里要注意下server.1
这个后缀,表示的是192.168.1.145
这个机器,在机器中的server id
是1
五、标识server id
在/usr/local/zookeeper/zkdata
目录中创建文件 myid 文件,每个文件中分别写入当前机器的server id,例如192.168.1.145这个机器,在/usr/local/zookeeper/zkdata目录的myid文件中写入数字1
.
六、启动zookeeper:
执行
/usr/local/zookeeper/zookeeper-3.4.8/bin/zkServer.sh start
七、检测是否成功启动:
在各个节点上分别执行如下指令,可看到其中有leader和follower,即搭建成功
/usr/local/zookeeper/zookeeper-3.4.8/bin/zkServer.sh status
这些都是常见配置,但是第四点那个添加快照日志目录是新手很容易忽略的,如果不分开配置的话,zookeeper就会把两个日志放在一起,造成日志文件异常庞大,很容易就把磁盘占满了, 分离二者,然后配合官方文档的定时清除zk日志文件的指令,是新手很容易忽略的事情,这个才是最重要的,配置如下:
1 . 进入zk目录
cd /usr/local/zookeeper/zookeeper-3.4.8
2 . 创建清除脚本
创建clean.sh文件,并chmod u+x clean.sh
,添加如下内容
java -cp zookeeper-3.4.8.jar:lib/slf4j-api-1.6.1.jar:lib/slf4j-log4j12-1.6.1.jar:lib/log4j-1.2.16.jar:conforg.apache.zookeeper.server.PurgeTxnLog /root/zookeeper/zkdataLog /root/zookeeper/zkdata -n 5
注意这个命令和你当前的版本号有关系,注意先在命令行里面使其自动补全输入一遍测试下这个指令
3 . 设置为定时任务
可以先crontab –l
查看下当前的定时任务
确认没有设置过就开始设置定时任务:
crontab –e
# 输入如下内容:
0 0 * * 0 sh /usr/local/zookeeper/zookeeper-3.4.8/cleanup.sh
前面的数字各位代表的意思: 0(0-59)分 0(0-23)点 全年 全月(0-11) 星期天(0-6,注意周日是第一天,所以是0)