本地虚拟机搭建zookeeper集群
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> 单个节点均已启动,但集群角色查询不到
查看防火墙是否关闭,若未关闭请关闭