02-创建并配置多台虚拟机

星期一, 4月 7, 2025 | 4分钟阅读

MyraZ
02-创建并配置多台虚拟机

关于Linux系统大数据环境搭建——02-创建并配置多台虚拟机。

创建两台虚拟机(添加两个节点)。

  • basenode(192.168.88.100)

  • node01(192.168.88.101)

关闭防火墙和SELinux

  1. 首先使用systemctl status firewalld查看防火墙状态

  2. 使用systemctl disable firewalld关闭防火墙

  3. 使用vi /etc/selinux/config修改SELinux配置文件,修改SELINUX=enforcingSELINUX=disable

    原文件内容:

    image-20250407163837906

  4. basenode、node01分别执行上述操作关闭防火墙。

# 查看防火墙状态
systemctl status firewalld
# 本次服务内关闭防火墙(重启虚拟机后会自动开启)
systemctl stop firewalld
# 启动防火墙
systemctl start firewalld
# 重启防火墙
systemctl restart firewalld
# 禁用防火墙服务
systemctl disable firewalld

修改网络配置

​ 使用vi /etc/sysconfig/network-scripts/ifcfg-ens33修改网络配置

​ 原文件内容如下:

image-20250407155145377

  我们只需要修改 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修改主机名

​ 原文件内容:

image-20250407160100859

​ basenode、node01、node02、node03主机名分别修改为basenode、node01。

​ 配置完之后,使用reboot重启虚拟机。

修改hosts映射

Linux

使用命令vi /etc/hosts修改hosts映射。

原文件内容:

image-20250407161907330

在文件中,添加以下内容:

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
  1. 使用ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa生成密钥 运行以上命令后会在 ~/.ssh/ 目录下生成一对密钥对,可以使用ls ~/.ssh/查看是否有id_rsa (私钥)和id_rsa.pub(公钥)。

  2. 使用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 机器上也做一次。

  3. 忽略主机名校验和host校验

    修改 /etc/ssh/ssh_config 文件的配置,在 Host * 节点下配置以下信息:

    # 严格的密钥检查 no
    StrictHostKeyChecking no
    # 如果不希望生成已知主机列表文件,可以将已知主机列表文件信息写入黑洞(不会再生成 known_hosts 文件)
    #UserKnownHostsFile /dev/null
    

    image-20250407165935098

  4. basenode、node01分别执行上述1~3步骤。

设置时间自动同步

  1. 使用ll /etc/localtime查看时区。
  2. 使用ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime设置时区为亚洲上海时区
  3. 使用yum -y install ntp安装时间同步的服务
  4. 使用ntpdate cn.ntp.org.cn自动同步网络时间中心
  5. basenode、node01分别执行上述1~4步骤。

© 2024 - 2025 雪中烛

 

在线工具资源网站

在线工具官网

ProcessOn:👉ProcessOn在线作图

腾讯文档:👉腾讯文档

FlowUs 息流:👉FlowUs 息流

Mermaid Live Editor:👉在线流程图和图表编辑器 - 美人鱼实时编辑器

ME2在线工具(加密工具):👉ME2在线工具-在线开发学习生活工具箱

Textln:👉Textln文本智能云平台-通用文本解析

MinerU:👉MinerU数据提取工具

Crontab:👉Cron Expression Examples - Crontab.guru

正则表达式测试网站:👉regex101: build, test, and debug regex

技术资源网站

技术资源官网

Spring:👉Spring官网

MyBatis中文网 :👉MyBatis 中文网

Redis中文网:👉Redis中文网

Zookeeper:👉Apache ZooKeeper官网

Raft算法:👉Raft Consensus Algorithm官网

Hadoop:👉Apache Hadoop官网

Hive:👉Apache Hive官网

Phoenix:👉Apache Phoenix官网

Bootstrap中文网:👉Bootstrap中文网

Element:👉组件 | Element

Layui :👉Layui - 极简模块化前端 UI 组件库(官方文档)

FreeMarker :👉FreeMarker 中文官方参考手册

ztree树插件: 👉zTree – jQuery 树插件官网

x File Storage:👉x File Storage官网