1、基础环境
1.1、主机准备
1.2、同步系统时间
# 设置时区
timedatectl set-timezone Asia/Shanghai
# 同步系统时间
apt install -y ntpdate cron
systemctl start cron
systemctl enable cron
cat << 'CAT_END' > /var/spool/cron/crontabs/root
#ntp Server update
*/5 * * * * /usr/sbin/ntpdate ntp5.aliyun.com 2>&1 > /dev/null
#ntp end
CAT_END
ntpdate ntp5.aliyun.com
2、安装Java环境
2.1、创建安装和存放软件的目录
mkdir /data/{softs,server} -p
cd /data/softs
2.2、下载java或者上传java
# 版本
jdk-8u121-linux-x64.tar.gz
2.3、安装软件
cd /data/softs
tar xf jdk-8u121-linux-x64.tar.gz -C /data/server
ln -s /data/server/jdk1.8.0_121 /usr/local/java
2.4、配置环境变量
cat << 'CAT_END' >> /etc/profile
export JAVA_HOME=/usr/local/java
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
CAT_END
source /etc/profile
java -version
2.5、检查目录
# tree -L 1 /usr/local/java
/usr/local/java
├── COPYRIGHT
├── LICENSE
├── README.html
├── THIRDPARTYLICENSEREADME-JAVAFX.txt
├── THIRDPARTYLICENSEREADME.txt
├── bin
├── db
├── include
├── javafx-src.zip
├── jre
├── lib
├── man
├── release
└── src.zip
3、安装ZooKeeper软件
3.1、下载软件
curl -O https://dlcdn.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz
3.2、安装软件
# 解压安装
tar xf apache-zookeeper-3.7.1-bin.tar.gz -C /data/server
ln -s /data/server/apache-zookeeper-3.7.1-bin /usr/local/zookeeper
# 配置环境变量
cat << 'CAT_END' > /etc/profile.d/zk.sh
#/bin/bash
export PATH=/usr/local/zookeeper/bin:$PATH
CAT_END
source /etc/profile.d/zk.sh
3.3、配置解析
3.3.1、查看配置
# cat /usr/local/zookeeper/conf/zoo_sample.cfg | grep -ni '^[a-Z]'
2:tickTime=2000
5:initLimit=10
8:syncLimit=5
12:dataDir=/tmp/zookeeper
14:clientPort=2181
3.3.2、属性解析
配置项 作用
tickTime "滴答时间",用于配置Zookeeper中最小的时间单元长度,单位毫秒,是其他时间配置的基础
initLimit 初始化时间,包含启动和数据同步,其值是tickTime的倍数
syncLimit 正常工作,心跳监测的时间间隔,其值是tickTime的倍数
dataDir 配置Zookeeper服务存储数据的目录
clientPort 配置当前Zookeeper服务对外暴露的端口,用户客户端和服务端建立连接会话
3.3.3、复制配置文件使用之生效
cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg
3.4、ZK启动服务
3.4.1、启动zkServer.sh命令介绍
# zkServer.sh --help
命令参数功能详解
start:用于后台启动Zookeeper服务器
start-foreground:用于前台启动Zookeeper服务器,常用来排查失败原因
stop:用于关闭Zookeeper服务器
restart:用于重启Zookeeper服务器
status:用于查看Zookeeper服务器状态
upgrade:用于升级Zookeeper服务器
print-cmd:用于打印Zookeeper程序命令行及其相关启动参数
3.4.2、启动服务
3.4.3、检查效果
# 端口检查
netstat -tnulp | grep 2181
# 服务检查
zkServer.sh status
# 进程检查
ps aux | grep zoo
# 连接检查
zkCli.sh
3.5、zookeeper配置专用的数据和日志目录
3.5.1、创建对应的目录
mkdir /usr/local/zookeeper/{logs,data} -p
3.5.2、配置zoo.cfg
# cat /usr/local/zookeeper/conf/zoo.cfg | grep -ni '^[a-Z]'
2:tickTime=2000
5:initLimit=10
8:syncLimit=5
12:dataDir=/usr/local/zookeeper/data
13:dataLogDir=/usr/local/zookeeper/logs
clientPortAddress=192.168.10.30 # 记得配置上,避免系统使用IPv6监听
15:clientPort=2181
3.5.3、重启服务,检查目录是否有数据
zkServer.sh restart
# ll /usr/local/zookeeper/{logs,data}
/usr/local/zookeeper/data:
drwxr-xr-x 3 root root 4096 May 30 15:08 ./
drwxr-xr-x 8 root root 4096 May 30 15:05 ../
drwxr-xr-x 2 root root 4096 May 30 15:08 version-2/
-rw-r--r-- 1 root root 4 May 30 15:08 zookeeper_server.pid
/usr/local/zookeeper/logs:
drwxr-xr-x 3 root root 4096 May 30 15:08 ./
drwxr-xr-x 8 root root 4096 May 30 15:05 ../
drwxr-xr-x 2 root root 4096 May 30 15:08 version-2/
-rw-r--r-- 1 root root 16890 May 30 15:08 zookeeper-root-server-localhost.out
-rw-r--r-- 1 root root 0 May 30 14:58 zookeeper_audit.log