02-创建并配置多台虚拟机
星期一, 4月 7, 2025 | 4分钟阅读

关于Linux系统大数据环境搭建——02-创建并配置多台虚拟机。
创建两台虚拟机(添加两个节点)。
-
basenode(192.168.88.100)
-
node01(192.168.88.101)
关闭防火墙和SELinux
-
首先使用
systemctl status firewalld
查看防火墙状态 -
使用
systemctl disable firewalld
关闭防火墙 -
使用
vi /etc/selinux/config
修改SELinux配置文件,修改SELINUX=enforcing
为SELINUX=disable
。原文件内容:
-
basenode、node01分别执行上述操作关闭防火墙。
# 查看防火墙状态
systemctl status firewalld
# 本次服务内关闭防火墙(重启虚拟机后会自动开启)
systemctl stop firewalld
# 启动防火墙
systemctl start firewalld
# 重启防火墙
systemctl restart firewalld
# 禁用防火墙服务
systemctl disable firewalld
修改网络配置
使用vi /etc/sysconfig/network-scripts/ifcfg-ens33修改网络配置
原文件内容如下:
我们只需要修改 2 行,删除 1 行,新增 6 行即可。首先i键进入编辑模式,然后开始编辑文件:
修改:
ONBOOT=yes
BOOTPROTO=static
ONBOOT=yes
:是否开机启动网络BOOTPROTO=static
:使用静态网络 IP,就是自己手动设置(dhcp 表示动态获取网络 IP,也就是自动获取)
删除:
UUID=xxxxx
UUID=xxxxx
:每一个网卡都会有,不能重复,否则两台 Linux 机器只有一台可上网。因为后期我们会通过这台虚拟机克隆新的虚拟机,所以删除UUID
。
新增:
IPADDR=192.168.88.100
NETMASK=255.255.255.0
GATEWAY=192.168.88.2
DNS1=192.168.88.2
DNS2=114.114.114.114
DNS3=8.8.8.8
文件操作完毕后Esc退出编辑模式,然后:进入底行模式:wq
保存并退出文件。
然后输入以下命令重启网络:
systemctl restart network
然后ping
一下百度,如果出现以下效果则表示网络配置成功(Ctrl + C 终止 ping 命令的执行)。
basenode、node01、node02、node03分别进行上述修改网络配置操作。
-
basenode(192.168.88.100)
-
node01(192.168.88.101)
修改主机名和hosts映射
修改主机名
使用vi /etc/hostname修改主机名
原文件内容:
basenode、node01、node02、node03主机名分别修改为basenode、node01。
配置完之后,使用reboot
重启虚拟机。
修改hosts映射
Linux
使用命令vi /etc/hosts修改hosts映射。
原文件内容:
在文件中,添加以下内容:
192.168.88.100 basenode
192.168.88.101 node01
192.168.88.102 node02
192.168.88.103 node03
使用ping basenode
测试,成功之后,表示修改成功。
basenode、node01分别执行上述操作。
Windows
找到C:\Windows\System32\drivers\etc\hosts,将hosts文件复制到桌面,使用编辑器在文件最下面添加以下内容:
192.168.88.100 basenode
192.168.88.101 node01
192.168.88.102 node02
192.168.88.103 node03
修改完后,将文件重新复制到C:\Windows\System32\drivers\etc\下,覆盖原有hosts文件。
设置主机间相互免密
现在虚拟机四个节点的环境如下:
主机名 | IP |
---|---|
basenode | 192.168.88.100 |
node01 | 192.168.88.101 |
node02 | 192.168.88.102 |
node03 | 192.168.88.103 |
-
使用
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
生成密钥 运行以上命令后会在 ~/.ssh/ 目录下生成一对密钥对,可以使用ls ~/.ssh/
查看是否有id_rsa (私钥)和id_rsa.pub(公钥)。 -
使用
ssh-copy-id -i ~/.ssh/id_rsa.pub root@主机IP
拷贝公钥到指定目标服务器接下来,你想免秘钥登录谁,只需要把自己的公钥传递给对方主机即可。这个公钥文件必须放在对方主机的
~/.ssh/authorized_keys
文件中。可以使用命令将公钥文件自动传递过去,命令如下:(例如:node01免密node02)[root@node01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.88.102 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" The authenticity of host '192.168.88.102 (192.168.88.102)' can't be established. ECDSA key fingerprint is SHA256:U4EWd869KRKqbW0b2wROWkc7+i+dBW3WHgy+IILYDMI. ECDSA key fingerprint is MD5:99:5a:c0:d8:e4:ec:73:fe:3c:f5:c0:b6:14:7f:d4:0f. Are you sure you want to continue connecting (yes/no)? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@192.168.88.102's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'root@192.168.88.102'" and check to make sure that only the key(s) you wanted were added.
查看对方主机
~/.ssh/authorized_keys
文件如下:[root@node02 ~]# cat ~/.ssh/authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOENHCwG21/zMYmSZtY/QbDpMS5coPcvhlEkmzTEXzi5PMx30qYZRaClsp9C8z7Qa0t3IFKe qp3+g0ZdGYkqEUmCYqwQH9ESnEuHaKKzM04YlfYFV7m9uqtmaOwCfSXJ5bEFKqP5/xBT5MsplK4KYgS4MjS1zQO0EDo19HJauG/9gF YwjBaMOqdsBN2qqjzOOXpDhgXgeY1NQjw9l7yd4P/EE/K9vzFi8T9ssQTBaf9hNRtVKq4cyddfyQ9p0OZVARRo+h2TDyzb4jOyApAD 3aGCBO2wiXuW98mMwGCVy+xELM2FiDpIYZi0MKcwWcXsSMaKqHBuOpIYcjZgRlYboz root@node01
传输文件测试是否已免密:
[root@node01 ~]# scp /root/abc root@192.168.88.102:~ profile
通过测试发现已无需输入密码即可进行文件传输,至此,免密流程结束。注意:免密操作是单方面的,如果希望node02 操作 node01 也免密的话,需要将上述流程在 node02 机器上也做一次。
-
忽略主机名校验和host校验
修改 /etc/ssh/ssh_config 文件的配置,在 Host * 节点下配置以下信息:
# 严格的密钥检查 no StrictHostKeyChecking no # 如果不希望生成已知主机列表文件,可以将已知主机列表文件信息写入黑洞(不会再生成 known_hosts 文件) #UserKnownHostsFile /dev/null
-
basenode、node01分别执行上述1~3步骤。
设置时间自动同步
- 使用
ll /etc/localtime
查看时区。 - 使用
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
设置时区为亚洲上海时区 - 使用
yum -y install ntp
安装时间同步的服务 - 使用
ntpdate cn.ntp.org.cn
自动同步网络时间中心 - basenode、node01分别执行上述1~4步骤。