在进行Hadoop集群的安装部署之前,需要对虚拟机进行一些基础环境配置。例如,为了在集群中识别主机,需要配置主机和IP地址的映射关系;为了使用Web相关的服务和访问连接,需要在集群中关闭并禁用防火墙功能;为了减少节点之间访问时人工输入用户密码,需要配置SSH免密登录;为了集群节点的时间能同步,需要配置时间服务。
1.1 设置服务器的主机名
Hadoop集群的3个节点的主机名分别为master、slave1、slave2
-
修改master节点的主机名
在master节点中执行修改命令hostnamectl set-hostname master
,然后执行 bash 命令刷新主机名 -
修改slave1节点的主机名
在slave1节点中执行修改命令hostnamectl set-hostname slave1
,然后执行 bash 命令刷新主机名 -
修改slave2节点的主机名
在slave2节点中执行修改命令hostnamectl set-hostname slave2
,然后执行 bash 命令刷新主机名
1.2 关闭并禁用防火墙
Hadoop集群可以在web页面中进行管理,但需要关闭防火墙,否则会打不开web页面,也会造成Hadoop后台运行脚本出现一些不好解决的、莫名的错误
在master,slave1,slave2节点中分别关闭并禁用防火墙,并查看防火墙状态
关闭防火墙命令:systemctl stop firewalld
;禁用防火墙命令:systemctl disable firewalld
;查看防火墙状态:systemctl status firewalld
1.3 修改主机IP地址映射文件
1.3.1 修改虚拟机节点的主机IP地址映射文件
在master、slave1、slave2节点分别执行命令vi /etc/hosts
编辑hosts文件,文件内容为
192.168.75.151 master
192.168.75.152 slave1
192.168.75.153 slave2
1.3.2 修改宿主机的主机IP地址映射文件
在宿主机windows操作系统中,进入 C:\Windows\System32\Drivers\etc 目录,修改host文件,在文件末尾追加以下信息
192.168.75.151 master
192.168.75.152 slave1
192.168.75.153 slave2
1.4 配置免密登录
集群节点之间因为各种需要,会互相访问,如在节点之间执行scp命令发送文件,或者在一键启动Hadoop集群时,默认情况下需要手动输入很多次密码,所以在集群节点之间设置相互SSH免密登录会比较方便
1.4.1 在3个节点上生成密钥对
在3个节点上分别执行 "sgensh-keygen -t rsa -P '' "命令,在交互过程中会提示密钥对存放路径,默认存放在/root/.ssh/id_rsa目录下,直接按回车键选择存放在该目录下。
1.4.2 在master节点上收集slave1节点的公钥
执行切换目录命令
cd /root/.ssh/
执行传输命令scp root@slave1:~/.ssh/id_ras.pub ./1.pub
1.4.2 在master节点上收集slave2节点的公钥
执行切换目录命令
cd /root/.ssh/
执行传输命令scp root@slave2:~/.ssh/id_ras.pub ./2.pub
1.4.3 在master节点上制作白名单
执行切换目录命令
cd /root/.ssh/
执行制作和赋权白名单命令
cat id_ras.pub 1.pub 2.pub >> authorized_keys
chmod 700 authorized_keys
cat authorized_keys
1.4.4 将白名单文件分发给其他节点
需要将白名单文件分发到slave1节点和slave2节点上才能互相拥有对方的公钥,实现SSH免密登录。执行以下命令将白名单文件分发给slave1节点和slave2节点
scp /root/.ssh/authorized_keys slave1:/root/.ssh/
scp /root/.ssh/authorized_keys slave2:/root/.ssh/
1.4.5 设置集群时间同步
集群中的节点如果没有连接外网,则时间久了,会产生时间偏差,导致集群执行任务时间不同步,所以需要在集群中的节点上设置服务器集群的时间同步。
1.4.5.1 安装并启动NTP服务
如果系统默认没有安装NTP服务,则需要先安装,分别在3个节点上执行以下命令,
安装NTP服务
yum install -y ntpdate
yum install -y ntp
启动NTP服务
systemctl start ntpd
systemctl enable ntpd
1.4.5.2 设置时间同步服务器
在master节点上修改ntp.conf文件,执行vi /etc/ntp.conf
命令,在public server章节下添加"server 127.127.1.0"内容,表示设置服务器为本地节点;在access章节下添加"restrict 192.168.75.0",表示新增一个restrict段为可以接受服务的网段
重启NTP 服务
systemctl restart ntpd
systemctl status ntpd
1.4.5.3 设置时间同步客户端
设置slave1节点和slave2节点作为时间同步客户端来同步master服务器的时间,在slave1和slave2节点执行vi /etc/ntp.conf
命令,修改ntp.conf文件,在server节点中添加一个时间同步服务器地址,这里为"192.168.75.151"
1.4.5.3 在所有节点上启动时间同步功能
执行命令timedatectl set-ntp yes