Zookeeper部署安装
本节点主要介绍安装Zookeeper集群部署的主要步骤。本次实训使用三个节点完成集群的搭建,分别是master、slaves1、slaves2
在安装Zookeeper集群时,我们需要完成一些准备工作,包括网络配置、关闭防火墙、安装SSH和安装JDK环境等。
一、网络配置
态分配的IP地址是临时的,它会在一定时间内释放该IP地址供其他机器使用,因此使用该方式获取的IP地址不是固定的,这样会导致集群不稳定。因此我们需要设置为静态IP,具体操作如下:
-
打开【/etc/sysconfig/network-scripts/ifcfg-ens33】文件。
vi /etc/sysconfig/network-scripts/ifcfg-ens33
-
该文件为网卡配置文件,对该文件做以下修改:
BOOTPROTO="static"
打开虚拟机【编辑】->【虚拟网络编辑器】,查看VMnet8网卡的子网IP地址。
点击【NAT设置】界面,查看网关IP地址。
再向ifcfg-ens33添加以下内容:
IPADDR=192.168.80.160 #前3个数必须与网关IP的前3个数必须一致,最后一个数则随机填入1-255的数字,组成新的IP地址,该IP必须是未被占用的。
GATEWAY=192.168.80.2 #输入VMnet8网关IP地址
DNS1=114.114.114.114
注意:此处每台机器节点配置不一样,大家先进行子网IP查询,再添加以上内容。
- 重启网络
systemctl restart network
- 网络测试,尝试连接百度地址,如果能正常连接成功,则表示网络配置完成。
ping www.baidu.com
二、关闭防火墙和SELinux
注意:这个步骤只是为了我们学习方便,在实际工作中绝对不可以关闭防火墙,只能在防火墙配置需要开放的端口即可。
-
查看当前防火墙状态
systemctl status firewalld.service
CentOS 7默认是开机启动防火墙。因此我们要关闭防火墙并停止开启自动启动防火墙设置。
-
关闭当前防火墙
systemctl stop firewalld.service
- 关闭防火墙的开机自启
systemctl disable firewalld
- 关闭后再查看防火墙状态。
systemctl status firewalld.service
如果防火墙状态变为Inactive(dead)状态,则表示防火墙关闭成功。
关闭完防火墙后,我们即可使用XShell工具连接。
-
Linux有一个安全模块:SELinux,用以限制用户和程序的相关权限,来确保系统的安全稳定。SELinux的配置同防火墙一样,非常复杂,课程中不多涉及,后续视情况可以出一章SELinux的配置课程。在当前,我们只需要关闭SELinux功能,避免导致后面的软件运行出现问题即可,
修改/etc/sysconfig/selinux文件
vim /etc/sysconfig/selinux
修改文件内容。
#将第7行的SELINUX=enforcing改为,保存退出后,重启虚拟机即可,千万要注意disabled单词不要写错,不然无法启动系统 SELINUX=disabled
三、安装JDK1.8环境
JDK安装步骤请参考该链接:https://blog.csdn.net/2401_82567159/article/details/140915141
四、复制CentOS镜像
安装集群化软件,首要条件就是要有多台Linux服务器可用。我们可以使用VMware提供的克隆功能,将我们的虚拟机额外克隆出3台来使用。
-
首先,关闭当前CentOS系统虚拟机
-
在VMWare工具中新建文件夹,命名为:
Hadoop集群
,将master机器拖到Hadoop集群文件夹中。 -
克隆master节点。鼠标右键点击【master】节点,选择【管理】->【克隆】进入虚拟机克隆管理界面。
克隆虚拟机当前状态。
选择【创建完整克隆】
虚拟机名称为salves1,保存路径设置到不还原盘中。点击【完成】。
-
按照以上操作,克隆出第二个节点:slaves2,并将slaves1与slaves2放到
Hadoop集群
文件夹中。 -
开启slaves1节点,修改slaves1节点的配置。
① 修改slaves1节点的主机名为slaves1
hostnamectl set-hostname slaves1
② 修改slaves1节点的固定ip为:192.168.80.161**(注意IP地址前3个数需跟VMnet8 IP网关地址前3个数必须一致)**
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改IPADDR的值
IPADDR=192.168.80.161
-
开启slaves2节点,修改slaves2节点的配置。
按照第5步步骤,将slaves2节点的主机名设置为slaves2,ip设置为:192.168.80.162**(注意IP地址前3个数需跟VMnet8 IP网关地址前3个数必须一致)**
-
配置主机名映射
修改CentOS系统中的/etc/hosts文件。
vim /etc/hosts
在文件末端添加以下内容
192.168.80.160 master 192.168.80.161 slaves1 192.168.80.162 slaves2
注意:3台节点都需要修改
五、 配置SSH免密登录
后续安装的集群,都需要远程登录以及远程执行命令,我们可以简单起见,配置三台Linux服务器之间的免密码互相SSH登录。
-
在每一台机器执行
ssh-keygen -t rsa
一直回车确认即可。
-
在每一台机器节点执行一下指令,
ssh-copy-id master ssh-copy-id slaves1 ssh-copy-id slaves2 #进行免密操作时会询问是否继续连接,输入“yes”后,再输入登录密码完成操作。
-
执行完毕后,使用SSH测试远程登录,如果三台机器能相互登录,且无须输入密码,即代表免密配置成功。
ssh master #远程登录master节点 exit #退出登录 ssh slaves1 #远程登录slaves1节点 exit #退出登录 ssh slaves2 #远程登录slaves2节点 exit #退出登录
六、配置Zookeeper集群
ZooKeeper 在 Hadoop HA 模式中发挥了关键的协调、状态管理和故障处理的作用,大大提高了 Hadoop 集群的可用性和可靠性。以下为Zookeeper配置步骤。
-
下载Zookeeper组件。
从Zookeeper官网中下载Zookeeper3.5.10版本的安装包,下载链接为:Index of /dist/zookeeper/zookeeper-3.5.10 (apache.org)
-
使用XFTP上传安装包到master节点的/root/module目录下
-
解压ZooKeeper到/usr/local目录下
cd /root/module tar -zxvf apache-zookeeper-3.5.10-bin.tar.gz -C /usr/local
-
切换到/usr/local/文件夹,将zookeeper-3.4.6重命名为zookeeper
cd /usr/local mv apache-zookeeper-3.5.10-bin zookeeper
-
配置Zookeeper环境变量
vim /etc/profile
在最下面添加以下内容
export ZOOKEEPER_HOME=/usr/local/zookeeper export PATH=$PATH:$ZOOKEEPER_HOME/bin
-
重新加载环境变量,使环境变量生效。
source /etc/profile
-
将/usr/local/zookeeper/conf/zoo_sample.cfg重命名为zoo.cfg(ZooKeeper的配置文件)
cd /usr/local/zookeeper/conf/ mv zoo_sample.cfg zoo.cfg
-
修改Zookeeper的配置文件zoo.cfg
vi zoo.cfg
修改dataDir内容:
dataDir=/usr/local/zookeeper/zkdata
在文末添加以下内容:
server.1=master:2888:3888 server.2=slaves1:2888:3888 server.3=slaves2:2888:3888
-
新建/usr/local/zookeeper/zkdata,在该目录下新建文件myid
cd /usr/local/zookeeper/ mkdir zkdata cd zkdata echo 1 >> myid
-
复制zookeeper目录到slaves1与slaves2节点
scp -r /usr/local/zookeeper root@slaves1:/usr/local scp -r /usr/local/zookeeper root@slaves2:/usr/local
-
修改slaves1中的myid文件为
2
,slaves2中的myid的节点为3
#在slaves1节点中操作 cd /usr/local/zookeeper/zkdata/ echo 2 > myid #在slaves2节点中操作 cd /usr/local/zookeeper/zkdata/ echo 3 > myid
-
配置slaves1与slaves2的Zookeeper的环境变量,并使其生效。
#在slaves1与slaves2节点中操作 vim /etc/profile
在文件末端添加以下内容:
export ZOOKEEPER_HOME=/usr/local/zookeeper export PATH=$PATH:$ZOOKEEPER_HOME/bin
重新加载环境变量,使环境变量生效
source /etc/profile
-
启动集群,分别在三个节点中启动zookeeper
zkServer.sh start
-
使用zkServer.sh查看三个节点的状态
zkServer.sh status
三台节点中,有一台为Leader,则表示Zookeeper集群部署成功