1. 配置说明
<1> VMare Workstation 14 Pro 下载
<1> OS CentOS-7-x86_64-DVD-1804.iso
<2> jdk jdk-8u66-linux-x64.tar.gz
<3> zookeeper apache-zookeeper-3.6.2-bin.tar.gz (注意该版本是带bin的!!!)
2. 前置准备
<1> 准备三台虚拟机 参考
<2> 配置网络
本次采用NAT,需要打开VMNet8网卡
目标:三台主机之间 以及 三台主机与本地物理机 相互均可以ping通
<3> 关闭防火墙
systemctl stop firewalld.service
查看防火墙状态 :systemctl status firewalld.service
禁止防火墙开机启动:systemctl disable firewalld.service
<3> 更改主机名称&&配置域名IP映射
vim /etc/hostname #配置节点主机域名(三台主机名称分别为 hadoop1 hadoop2 hadoop3)
vim /etc/hosts #配置节点主机IP与域名映射
192.168.83.128 hadoop1 #节点1
192.168.83.129 hadoop2 #节点2
192.168.83.130 hadoop3 #节点3
<4> 配置三台虚拟机免密登录 参考
<5> Linux环境安装jdk 参考
3. 集群搭建
<1> 创建zookeeper文件存放目录(3个节点均需要)
mkdir -p /opt/zk
<2> 上传apache-zookeeper-3.6.2-bin.tar.gz至/opt/zk (仅上传hadoop1即可,后续配置完zoo.cfg后,通过scp命令直接拷贝即可)
可使用xftp
<3> 创建zookeeper数据文件及日志文件存放目录(3个节点均需要)
mkdir -p /data/zk
mkdir -p /log/zk
<4> 【节点1】进入<2>所在目录,解压安装文件
tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz
<5> 【节点1】配置zoo.cfg(重点)
a. 进入解压文件的conf目录(完整路径:/opt/zk/apache-zookeeper-3.6.2-bin/conf),熟悉Linux目录规则可以按相对路径进入
cd /opt/zk/apache-zookeeper-3.6.2-bin/conf
b. 更名样例文件
mv zoo_sample.cfg zoo.cfg
c. 配置zoo.cfg
vim zoo.cfg
#配置zk数据存放目录
dataDir=/data/zk
#配置zk日志存放目录
dataLogDir=/log/zk
#配置zk节点与客户端通信端口
clientPort=2181
#配置zk节点(主机节点域名:节点间相互通信端口:节点leader选举端口)
server.0=hadoop1:2888:3888
server.1=hadoop2:2888:3888
server.2=hadoop3:2888:3888
d. 分发配置(将配置好的文件分发到节点2和节点3)
scp -r /opt/zk/apache-zookeeper-3.6.2-bin root@hadoop2:/opt/zk/
scp -r /opt/zk/apache-zookeeper-3.6.2-bin root@hadoop3:/opt/zk/
<6> 启动(3个节点均需要)
cd /opt/zk/apache-zookeeper-3.6.2-bin
./zkServer.sh start
<7> 查看启动结果
cd /opt/zk/apache-zookeeper-3.6.2-bin
./zkServer.sh status
<8> 关闭(3个节点均需要)
cd /opt/zk/apache-zookeeper-3.6.2-bin
./zkServer.sh stop
4. 优化
<1> 批量启动/查看/关闭(选择一个节点即可,这里选择节点1)
说明:以下文件所在目录 /opt/zk/apache-zookeeper-3.6.2-bin/bin
a. 批量启动
vim startAll.sh
#!/bin/bash
for i in 1 2 3;
do
echo "************hadoop${i} start************"
ssh hadoop${i} "/opt/zk/apache-zookeeper-3.6.2-bin/bin/zkServer.sh start"
echo "************hadoop${i} end************"
done
b. 批量查看启动状态
vim showAllStatus.sh
#! /bin/sh
for i in 1 2 3 ;
do
echo "*****************hadoop${i} zk status start******************"
ssh hadoop${i} "/opt/zk/apache-zookeeper-3.6.2-bin/bin/zkServer.sh status"
echo "*****************hadoop${i} zk status end******************"
done
c. 批量关闭
vim stopAll.sh
#!/bin/bash
for i in 1 2 3;
do
echo "**************stop hadoop${i} start***************"
ssh hadoop${i} "/opt/zk/apache-zookeeper-3.6.2-bin/bin/zkServer.sh stop"
echo "**************stop hadoop${i} end***************"
done
<2> 集群可视化插件安装
zkui https://www.cnblogs.com/caoshousong/p/10709371.html
5. 遇到的问题(待完善)
<1> 单个节点均已启动,但集群角色查询不到
查看防火墙是否关闭,若未关闭请关闭