一 安装 jdk
1 安装openjdk 1.8的jre和jdk
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
安装后的jre和jdk在 /usr/lib/jvm/ 里,本例中具体的文件夹是java-1.8.0-openjdk-1.8.0.144-0.b01.el7_4.x86_64,注意这里的版本可能和你安装的不一样,以你的为准
2 在 /etc/profile文件 或者 /etc/profile.d/文件夹中新建 java.sh 文件,这里使用新建文件的方式,在文件中加入以下内容
vi /etc/profile.d/java.sh
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.144-0.b01.el7_4.x86_64 #注意这里的版本号按你安装的来
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASSPATH PATH
3 让环境变量立即生效
source /etc/profile
4 检验版本
java -version
二 安装 zookeeper
1 创建 zookeeper 服务文件夹
mkdir -p /usr/local/zookeeper
2 前往创建的文件夹,下载 zookeeper 压缩包
cd /usr/local/zookeeper
curl -o zookeeper-3.4.10.tar.gz https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
3 解压缩
tar -zxvf zookeeper-3.4.10.tar.gz
4 进入配置文件夹,创建配置文件
cd /zookeeper-3.4.10/conf
cp zoo_sample.cfg zoo.cfg
5 退出到zookeeper-3.4.10根目录,创建 data 和 log 文件夹,编辑 zoo.cfg 文件中 dataDir 和 dataLogDir 存放数据文件和日志文件
cd ..
mkdir -p data
mkdir -p log
cd conf
vi zoo.cfg
编辑 dataDir=/usr/local/zookeeper/zookeeper-3.4.10/data
编辑 dataLogDir=/usr/local/zookeeper/zookeeper-3.4.10/log
6 配置防火墙调整安全策略
6.1 开放 zookeeper 相关端口
firewall-cmd --permanent --zone=public --add-port=2181/tcp # 客户端访问端口
firewall-cmd --permanent --zone=public --add-port=2888/tcp # zookeeper 之间访问的端口
firewall-cmd --permanent --zone=public --add-port=3888/tcp # zookeeper 和其它应用的通信端口
firewall-cmd --reload
6.2.降低SELinux的安全级别,否则SELinux会限制集群数据传输(setenforce 0 命令只能设置运行时的安全级别,想要完全设置安全级别,需要在SELinux的配置文件中进行配置更改)
6.2.1打开/etc/selinux/config配置文件,设置SELINUX=permissive
6.2.2使用reboot命令重启服务器使SELinux安全级别更改生效
7 启动 zookeeper
cd ..
cd /bin
./zkServer.sh start
8 查看状态,standalone 是单机模式
./zkServer.sh status
9 将 zookeeper 设置为服务
/etc/systemd/system/文件夹下创建一个启动脚本zookeeper.service
vi /etc/systemd/system/zookeeper.service
[Unit]
Description=zookeeper
After=syslog.target network.target
[Service]
Type=forking
Environment=ZOO_LOG_DIR=/usr/local/zookeeper/zookeeper-3.4.10/log
ExecStart=/usr/local/zookeeper/zookeeper-3.4.10/bin/zkServer.sh start
ExecStop=/usr/local/zookeeper/zookeeper-3.4.10/bin/zkServer.sh stop
Restart=always
User=root
Group=root
[Install]
WantedBy=multi-user.target
以上脚本中Environment=ZOO_LOG_DIR=/usr/local/zookeeper/zookeeper-3.4.10/log的意思是为zookeeper 设置环境变量,指明日志文件的位置
10 设置自动启动
systemctl enable zookeeper
systemctl start zookeeper