小肥柴的Hadoop之旅 快速实验篇(0-1)虚拟机模拟完全分布式环境搭建

小肥柴的Hadoop之旅 快速实验篇(0-1)虚拟机模拟完全分布式环境搭建

    • 目录
    • [0. 概要](#0. 概要)
    • [1. 前置准备](#1. 前置准备)
      • [1.1 宿主机要求](#1.1 宿主机要求)
      • [1.2 软件下载](#1.2 软件下载)
      • [1.3 集群拓扑规划](#1.3 集群拓扑规划)
    • [2. 母机 (master) 安装与基础配置](#2. 母机 (master) 安装与基础配置)
      • [2.1 创建虚拟机](#2.1 创建虚拟机)
    • [2.2 首次连接 FinalShell](#2.2 首次连接 FinalShell)
      • [2.3 更换为清华 APT 源](#2.3 更换为清华 APT 源)
      • [2.4 安装 open-vm-tools(实现文件拖拽、剪贴板共享)](#2.4 安装 open-vm-tools(实现文件拖拽、剪贴板共享))
      • [2.5 配置时区与时间同步](#2.5 配置时区与时间同步)
      • [2.6 优化 SSH 连接速度(关闭 DNS 反向解析和 GSSAPI 认证)](#2.6 优化 SSH 连接速度(关闭 DNS 反向解析和 GSSAPI 认证))
    • [3. 网络配置(静态 IP + 幽灵动态 IP 根治)](#3. 网络配置(静态 IP + 幽灵动态 IP 根治))
      • [3.1 前置:VMware 虚拟网络编辑器修改子网](#3.1 前置:VMware 虚拟网络编辑器修改子网)
      • [3.2 修改主机名](#3.2 修改主机名)
      • [3.3 配置 hosts 文件](#3.3 配置 hosts 文件)
      • [3.4 使用 systemd-networkd 静态配置文件(推荐根治方案)](#3.4 使用 systemd-networkd 静态配置文件(推荐根治方案))
      • [3.5 手动清除残留的 DHCP 租约和进程(如果仍存在幽灵 IP)](#3.5 手动清除残留的 DHCP 租约和进程(如果仍存在幽灵 IP))
      • [3.6 重启终极验证](#3.6 重启终极验证)
    • [4. 安装 JDK 与 Hadoop](#4. 安装 JDK 与 Hadoop)
      • [4.1 安装 OpenJDK 8](#4.1 安装 OpenJDK 8)
      • [4.2 下载并部署 Hadoop 3.3.6](#4.2 下载并部署 Hadoop 3.3.6)
      • [4.3 配置环境变量](#4.3 配置环境变量)
      • [4.4 Hadoop 核心配置文件](#4.4 Hadoop 核心配置文件)
        • [4.4.1 hadoop-env.sh](#4.4.1 hadoop-env.sh)
        • [4.4.2 core-site.xml](#4.4.2 core-site.xml)
        • [4.4.3 hdfs-site.xml](#4.4.3 hdfs-site.xml)
        • [4.4.4 mapred-site.xml](#4.4.4 mapred-site.xml)
        • [4.4.5 yarn-site.xml](#4.4.5 yarn-site.xml)
        • [4.4.6 workers 文件](#4.4.6 workers 文件)
      • [4.5 创建本地数据目录](#4.5 创建本地数据目录)
    • [5. 克隆节点与修改身份](#5. 克隆节点与修改身份)
      • [5.1 关闭母机](#5.1 关闭母机)
      • [5.2 拍摄母机快照(可选)](#5.2 拍摄母机快照(可选))
      • [5.3 完全克隆四台子节点](#5.3 完全克隆四台子节点)
      • [5.4 逐台修改子节点主机名与 IP](#5.4 逐台修改子节点主机名与 IP)
      • [5.5 修改所有子节点的 hosts 文件](#5.5 修改所有子节点的 hosts 文件)
      • [5.6 重启所有子节点](#5.6 重启所有子节点)
    • [6. SSH 免密登录配置](#6. SSH 免密登录配置)
    • [7. 格式化 HDFS 并启动集群](#7. 格式化 HDFS 并启动集群)
    • [8. 调整 standby 节点角色(SecondaryNameNode + JobHistoryServer)](#8. 调整 standby 节点角色(SecondaryNameNode + JobHistoryServer))
      • [8.1 将 SecondaryNameNode 从 master 迁移到 standby](#8.1 将 SecondaryNameNode 从 master 迁移到 standby)
      • [8.2 在 standby 上配置 JobHistoryServer](#8.2 在 standby 上配置 JobHistoryServer)
    • [9. 集群启停规范与快照管理](#9. 集群启停规范与快照管理)
      • [9.1 启动顺序](#9.1 启动顺序)
      • [9.2 关闭顺序](#9.2 关闭顺序)
      • [9.3 快照节点](#9.3 快照节点)
    • [10. 常见问题 (FAQ)](#10. 常见问题 (FAQ))
      • [[Q1] FinalShell 连接慢/失败排查](#[Q1] FinalShell 连接慢/失败排查)
      • [[Q2] 幽灵动态 IP (192.168.10.128/129) 反复出现](#[Q2] 幽灵动态 IP (192.168.10.128/129) 反复出现)
      • [[Q3] SSH 免密登录后 start-dfs.sh 仍 Permission denied](#[Q3] SSH 免密登录后 start-dfs.sh 仍 Permission denied)
      • [[Q4] 格式化 HDFS 后再次格式化导致 DataNode 无法启动](#[Q4] 格式化 HDFS 后再次格式化导致 DataNode 无法启动)
      • [[Q5] worker 节点 jps 缺少 DataNode 或 NodeManager](#[Q5] worker 节点 jps 缺少 DataNode 或 NodeManager)
      • [[Q6] 虚拟机运行卡顿或性能不佳](#[Q6] 虚拟机运行卡顿或性能不佳)

目录

0. 概要

(1)目标 :在本地 VMware 虚拟机中搭建 5 节点完全分布式 Hadoop 3.3.6 集群(1主 + 1备 + 3工作),并打通后续扩展 ZooKeeper、Kafka、Spark 的基础。

(2)适用环境 :Windows 宿主机 + VMware Workstation Pro 17 + Ubuntu Server 22.04 LTS。

【注】所有软件均从国内清华镜像站获取。

1. 前置准备

1.1 宿主机要求

  • CPU ≥ 8 核,内存 ≥ 16 GB(推荐 32 GB),磁盘 ≥ 150 GB 可用空间(SSD 更佳)。
  • 已安装 VMware Workstation Pro 17(已对个人免费)。
  • 已安装 FinalShell(SSH + 文件传输 + 监控一体化)。

1.2 软件下载

软件 下载地址
Ubuntu Server 22.04.5 LTS 清华镜像
Hadoop 3.3.6 二进制包 清华镜像

注意 :不要下载 desktop 版或 src 源码包。文件名必须为 ubuntu-22.04.5-live-server-amd64.isohadoop-3.3.6.tar.gz

1.3 集群拓扑规划

节点 主机名 静态 IP 角色
VM1 master 192.168.10.101/24 NameNode, ResourceManager
VM2 standby 192.168.10.102/24 SecondaryNameNode, JobHistoryServer
VM3 worker1 192.168.10.103/24 DataNode, NodeManager
VM4 worker2 192.168.10.104/24 DataNode, NodeManager
VM5 worker3 192.168.10.105/24 DataNode, NodeManager
  • 网络模式:VMware NAT 模式,虚拟子网 192.168.10.0/24,网关 192.168.10.2;【注】可以视情况更改虚拟机IP设定,不冲突即可。
  • 硬件参考:master 4 核/8 GB,standby 2 核/4 GB,worker1~3 各 2 核/4 GB;每节点磁盘 50 GB。

2. 母机 (master) 安装与基础配置

2.1 创建虚拟机

【概要】

  1. VMware 新建虚拟机,选择 ubuntu-22.04.5-live-server-amd64.iso

  2. 硬件配置:双核(先预设 2 核即可,克隆后可改)、内存 2 GB(母机安装时 2 GB 足够,注意合理使用,4GB正好)。

  3. 网络类型:NAT 模式。

  4. 图形显示 :在"显示器"选项中,务必取消勾选"加速3D图形",以优化服务器环境性能。

  5. 安装 Ubuntu Server 简要流程如下:(细节键本节后续内容)

    • 语言 English,键盘 English (US)。
    • 软件源镜像 :手动输入 http://mirrors.tuna.tsinghua.edu.cn/ubuntu/
    • 磁盘分区:使用整个磁盘 (Use an entire disk)。
    • 用户创建 :新建用户 hadoop,设置密码(牢记)。
    • SSH 服务 :务必勾选 Install OpenSSH server
    • 其他保持默认,安装完成后重启。







      【安装 Ubuntu Server细节】启动虚拟机,进入安装界面,请参考以下关键设置(已经顺序排好):

    (1)Language: 选择 English。
    (2)Installer update: 选择 Continue without updating。
    (3)Keyboard: 保持默认 English (US)。
    (4)Network connections: 系统会尝试通过DHCP获取IP,先保持默认,我们后续会配置静态IP。
    (5)Configure proxy: 留空。
    (6)Configure Ubuntu archive mirror: 输入清华镜像源地址 http://mirrors.tuna.tsinghua.edu.cn/ubuntu/。
    (7)Guided storage configuration: 选择 Use an entire disk,然后选中磁盘,选择 Done。
    (8)Storage configuration: 确认分区信息后,选择 Continue。
    (9)Profile setup: 创建一个名为 hadoop 的用户,并设置密码。
    (10)SSH Setup: 按空格键勾选 Install OpenSSH server。
    (11)Featured server snaps: 直接选择 Done。
    (12)等待安装:安装完成后选择 Reboot Now。

2.2 首次连接 FinalShell

  1. 在母机终端 ip a 查看当前 DHCP 分配的临时 IP(类似 如 192.168.148.128)。

  2. 宿主机打开 FinalShell,新建 SSH 连接:

    • 主机:临时 IP
    • 端口:22
    • 用户名:hadoop
    • 密码:安装时设置的密码
  3. 连接成功即可继续。若连接不上 ,参考 10.1 FinalShell 连接慢/失败排查

2.3 更换为清华 APT 源

【注】第一次接触Linux的朋友要适应命令行操作,vi就是一个常见的编辑器。

bash 复制代码
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
sudo vi /etc/apt/sources.list

清空内容,粘贴以下内容(代号 jammy 对应 22.04):

复制代码
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

更新软件包列表:

bash 复制代码
sudo apt update

2.4 安装 open-vm-tools(实现文件拖拽、剪贴板共享)

bash 复制代码
sudo apt install -y open-vm-tools-desktop

2.5 配置时区与时间同步

bash 复制代码
sudo timedatectl set-timezone Asia/Shanghai
sudo timedatectl set-ntp true
sudo sed -i 's/^#NTP=/NTP=ntp.aliyun.com ntp.ustc.edu.cn/' /etc/systemd/timesyncd.conf
sudo systemctl restart systemd-timesyncd
date   # 确认时间正常

2.6 优化 SSH 连接速度(关闭 DNS 反向解析和 GSSAPI 认证)

bash 复制代码
sudo vi /etc/ssh/sshd_config

添加或修改:

bash 复制代码
UseDNS no
GSSAPIAuthentication no

重启 SSH:

bash 复制代码
sudo systemctl restart sshd

3. 网络配置(静态 IP + 幽灵动态 IP 根治)

背景 :VMware NAT 模式默认 DHCP 分配 IP,集群必须使用固定 IP。即使 Netplan 中关闭 DHCP,systemd-networkd 仍可能在后台获取动态 IP,导致网卡同时存在两个 IP(俗称"幽灵 IP"),造成集群通信混乱。以下方案永久解决此问题。

3.1 前置:VMware 虚拟网络编辑器修改子网

  1. VMware 菜单 → 编辑虚拟网络编辑器
  2. 选中 VMnet8(NAT 模式) ,将 子网 IP 改为 192.168.10.0,掩码 255.255.255.0
  3. 点击 NAT 设置 ,将 网关 IP 改为 192.168.10.2。保存退出。

3.2 修改主机名

bash 复制代码
sudo hostnamectl set-hostname master

3.3 配置 hosts 文件

bash 复制代码
sudo vi /etc/hosts

删除 127.0.1.1 <旧主机名> 行(如 127.0.1.1 kluniv),确保本机主机名通过静态 IP 解析。最终内容:

复制代码
127.0.0.1   localhost

192.168.10.101  master
192.168.10.102  standby
192.168.10.103  worker1
192.168.10.104  worker2
192.168.10.105  worker3

::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

验证:

bash 复制代码
getent hosts master   # 必须返回 192.168.10.101

3.4 使用 systemd-networkd 静态配置文件(推荐根治方案)

出现DHCP无法禁用的情况时,需要查询当前是哪一个进程自动触发了它。现象类似:

复制代码
hadoop@worker1:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:4e:b4:d4 brd ff:ff:ff:ff:ff:ff
    altname enp2s1
    inet 192.168.10.103/24 brd 192.168.10.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.10.129/24 metric 100 brd 192.168.10.255 scope global secondary dynamic ens33
       valid_lft 1694sec preferred_lft 1694sec
    inet6 fe80::20c:29ff:fe4e:b4d4/64 scope link 
       valid_lft forever preferred_lft forever

此处经检测发现是 dhclient 导致,因此不依赖 Netplan,直接给 systemd-networkd 写静态配置。

bash 复制代码
sudo tee /etc/systemd/network/10-ens33.network << EOF
[Match]
Name=ens33

[Network]
DHCP=no
Address=192.168.10.101/24
Gateway=192.168.10.2
DNS=114.114.114.114
DNS=8.8.8.8
EOF

注意 :网卡名可能为 ens33ens160,请用 ip a 确认后替换。

重启服务并验证:

bash 复制代码
sudo systemctl restart systemd-networkd
ip a

此时应只显示 192.168.10.101,无任何 dynamic 字样。

3.5 手动清除残留的 DHCP 租约和进程(如果仍存在幽灵 IP)

bash 复制代码
# 停止服务及 socket
sudo systemctl stop systemd-networkd.service systemd-networkd.socket

# 删除幽灵 IP
sudo ip addr del 192.168.10.xxx/24 dev ens33 2>/dev/null

# 清除租约缓存
sudo rm -f /var/lib/systemd/network/*
sudo rm -f /run/systemd/netif/leases/*
sudo rm -f /run/systemd/netif/links/*

# 处理可能存在的独立 dhclient 进程
sudo pkill dhclient
sudo mv /sbin/dhclient /sbin/dhclient.bak 2>/dev/null

# 重启服务
sudo systemctl start systemd-networkd.service

3.6 重启终极验证

bash 复制代码
sudo reboot

重启后再次用 FinalShell 连接新 IP 192.168.10.101,连续执行两次 ip a,确认幽灵 IP 彻底消失。


4. 安装 JDK 与 Hadoop

4.1 安装 OpenJDK 8

bash 复制代码
sudo apt update
sudo apt install -y openjdk-8-jdk-headless
java -version   # 应输出 1.8.0_xxx

4.2 下载并部署 Hadoop 3.3.6

bash 复制代码
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
sudo tar -zxvf hadoop-3.3.6.tar.gz -C /usr/local
sudo mv /usr/local/hadoop-3.3.6 /usr/local/hadoop
sudo chown -R hadoop:hadoop /usr/local/hadoop

4.3 配置环境变量

bash 复制代码
vi ~/.bashrc

末尾添加:

bash 复制代码
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

生效:

bash 复制代码
source ~/.bashrc
hadoop version   # 验证

4.4 Hadoop 核心配置文件

进入配置目录:

bash 复制代码
cd /usr/local/hadoop/etc/hadoop
4.4.1 hadoop-env.sh

在文件末尾添加:

bash 复制代码
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
4.4.2 core-site.xml
xml 复制代码
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/data/tmp</value>
    </property>
</configuration>
4.4.3 hdfs-site.xml
xml 复制代码
<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop/data/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/hadoop/data/datanode</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
</configuration>
4.4.4 mapred-site.xml
xml 复制代码
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
4.4.5 yarn-site.xml
xml 复制代码
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
</configuration>
4.4.6 workers 文件

编辑文件:

bash 复制代码
vi /usr/local/hadoop/etc/hadoop/workers

用以下内容完全替换:

复制代码
worker1
worker2
worker3

【注】为什么要改这个文件?

(1)这个 workers 文件(Hadoop 2.x 时代叫 slaves,3.x 改名为 workers)专门用来告诉 Hadoop 集群:哪些节点是 DataNode 和 NodeManager。

(2)启动 HDFS 时,start-dfs.sh 脚本会读取这个文件,依次 SSH 到每一行所列的主机名去启动 DataNode 进程。

(3)启动 YARN 时,start-yarn.sh 脚本也会根据它启动 NodeManager 进程。

该文件等母机配好之后会随整个 /usr/local/hadoop 目录一起分发到各节点,所以目前只需要在 master 上修改,克隆/分发后不需要再单独改每个节点。

4.5 创建本地数据目录

bash 复制代码
mkdir -p /usr/local/hadoop/data/tmp
mkdir -p /usr/local/hadoop/data/namenode
mkdir -p /usr/local/hadoop/data/datanode

5. 克隆节点与修改身份

5.1 关闭母机

bash 复制代码
sudo shutdown now

5.2 拍摄母机快照(可选)

VMware 为 master 拍摄快照 Master-Configured,防止后续克隆出错时可回退。

5.3 完全克隆四台子节点

VMware → 右键 master → 管理 → 克隆 → 创建完整克隆 ,依次克隆出 standbyworker1worker2worker3

5.4 逐台修改子节点主机名与 IP

每台启动后,以 hadoop 登录,按如下脚本化修改(以 standby 为例):

bash 复制代码
# 主机名
sudo hostnamectl set-hostname standby

# 修改 systemd-networkd 配置文件中的地址
sudo sed -i 's/192.168.10.101\/24/192.168.10.102\/24/' /etc/systemd/network/10-ens33.network

# 重启网络
sudo systemctl restart systemd-networkd

其他节点对应 IP 替换(worker1: 103, worker2: 104, worker3: 105)。

5.5 修改所有子节点的 hosts 文件

每个子节点的 /etc/hosts删除 127.0.1.1 <旧主机名> 行,并确保五条映射都存在(内容同 master 的 /etc/hosts)。验证 getent hosts $(hostname) 返回自己的静态 IP。

5.6 重启所有子节点

bash 复制代码
sudo reboot

重启后检查 ip ahostname,确保网络干净、主机名正确。

6. SSH 免密登录配置

仅需在 master 上操作,实现 master 到所有节点(包括自己)的无密码 SSH。

bash 复制代码
ssh-keygen -t rsa -P ''   # 一路回车,后续一条一条的执行
ssh-copy-id hadoop@master
ssh-copy-id hadoop@standby
ssh-copy-id hadoop@worker1
ssh-copy-id hadoop@worker2
ssh-copy-id hadoop@worker3

测试:ssh hadoop@worker1 应无需密码直接登录。

7. 格式化 HDFS 并启动集群

仅在 master 上执行一次格式化

bash 复制代码
hdfs namenode -format

日志中应有 ... has been successfully formattedExiting with status 0

启动集群:

bash 复制代码
start-dfs.sh
start-yarn.sh

验证各节点进程(jps):

  • master:NameNode, ResourceManager
  • standby:(暂时无)
  • worker1~3:DataNode, NodeManager

Web UI 验证:

  • HDFS:http://192.168.10.101:9870(可见 3 个 Live DataNode)
  • YARN:http://192.168.10.101:8088(可见 3 个 Active NodeManager)

确认无误后,关闭所有虚拟机并拍摄快照 Stage1-Hadoop-Base

8. 调整 standby 节点角色(SecondaryNameNode + JobHistoryServer)

8.1 将 SecondaryNameNode 从 master 迁移到 standby

编辑 hdfs-site.xml 增加:

xml 复制代码
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>standby:9868</value>
</property>

同步到所有节点:

bash 复制代码
for node in standby worker1 worker2 worker3; do
    scp /usr/local/hadoop/etc/hadoop/hdfs-site.xml hadoop@$node:/usr/local/hadoop/etc/hadoop/
done

重启 HDFS:

bash 复制代码
stop-dfs.sh
start-dfs.sh

登陆 standby,jps 应出现 SecondaryNameNode

8.2 在 standby 上配置 JobHistoryServer

编辑 mapred-site.xml 增加:

xml 复制代码
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>standby:10020</value>
</property>
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>standby:19888</value>
</property>

同步配置,然后在 standby 上执行:

bash 复制代码
hdfs dfs -mkdir -p /tmp/hadoop-yarn/staging/history/done_intermediate
hdfs dfs -chmod -R 1777 /tmp/hadoop-yarn/staging
mapred --daemon start historyserver
jps   # 应有 SecondaryNameNode 和 JobHistoryServer

浏览器访问 http://192.168.10.102:19888 检查 JobHistory 界面。

9. 集群启停规范与快照管理

9.1 启动顺序

  1. master:start-dfs.shstart-yarn.sh
  2. standby:mapred --daemon start historyserver

9.2 关闭顺序

  1. standby:mapred --daemon stop historyserverhdfs --daemon stop secondarynamenode
  2. master:stop-yarn.shstop-dfs.sh

9.3 快照节点

关键节点务必拍摄快照:

  • Master-Configured:母机 Hadoop 配置完毕
  • Stage1-Hadoop-Base:基础集群运行成功
  • Stage1-Hadoop-Base-v2:standby 角色完善后

10. 常见问题 (FAQ)

[Q1] FinalShell 连接慢/失败排查

  1. 检查虚拟机 SSH 服务:sudo systemctl status ssh,若未启动 sudo systemctl enable ssh --now
  2. 防火墙放行 22 端口:sudo ufw allow ssh
  3. 关闭 SSH 的 DNS 反向解析:编辑 /etc/ssh/sshd_config,添加 UseDNS no,重启 ssh。
  4. 关闭 GSSAPI 认证:同上文件加 GSSAPIAuthentication no
  5. 宿主机 ping 虚拟机 IP,不通则检查 VMware 虚拟网络编辑器 NAT 模式是否启用。

[Q2] 幽灵动态 IP (192.168.10.128/129) 反复出现

根本原因 :systemd-networkd 在没有明确静态配置时会在接口上尝试 DHCP。
永久解决 :直接创建 /etc/systemd/network/10-ens33.network(参照 3.4 节),并重启服务。

若仍复发,检查是否有独立的 dhclient 进程,将其重命名:sudo mv /sbin/dhclient /sbin/dhclient.bak

[Q3] SSH 免密登录后 start-dfs.sh 仍 Permission denied

  • 确认在所有节点上都是用 ssh-copy-id 分发过公钥。
  • 确认 master 自己也需要 ssh-copy-id hadoop@master
  • 确认各节点 /etc/ssh/sshd_configPubkeyAuthentication yes 未被注释。
  • 检查目标节点 /home/hadoop/.ssh/authorized_keys 权限为 600,.ssh 目录权限为 700。

[Q4] 格式化 HDFS 后再次格式化导致 DataNode 无法启动

格式化会生成新的 NameNode ID,旧 DataNode 的 ID 不匹配。需要清空各 DataNode 的数据目录后重新格式化,或直接回滚到快照重新操作。

[Q5] worker 节点 jps 缺少 DataNode 或 NodeManager

检查 master 的 workers 文件中主机名是否正确、主机名解析是否正常(getent hosts worker1)。

[Q6] 虚拟机运行卡顿或性能不佳

  • 检查显示器设置 ,确认"加速3D图形 "选项处于取消勾选状态。
  • 检查各虚拟机分配的总内存是否超出宿主机物理内存。
  • 检查宿主机虚拟化设置是否已开启(BIOS中开启VT-x/AMD-V)。

(不断补充新问题和新现象)

相关推荐
飞火流星020271 小时前
Hadoop3.1.1集群+Hive3.1.0环境安装
大数据·hadoop·分布式·hadoop3.1.1集群安装·hive3.1.0安装
金井PRATHAMA1 小时前
内容与形式(二)内容:基于系统科学与信息科学双重视角的层级化定义
大数据·人工智能·自然语言处理·知识图谱
Shota Kishi2 小时前
解析 Solana 网络结构:通过领导者调度、验证者分布与质押集中度理解分布式区块生产
分布式·web3·去中心化·区块链
团象科技2 小时前
跨境合规压力加剧,海外云风控筑牢 AI 出海安全底座
大数据·人工智能
七夜zippoe2 小时前
OpenClaw 上下文管理:Token 优化策略
大数据·人工智能·深度学习·token·openclaw
傻啦嘿哟2 小时前
用办公Agent接管Excel苦力活:跨表匹配、格式清洗、自动图表生成
大数据
科技AI训练师2 小时前
2026年清虹分布式坐席系统如何破局技术内卷与运维成本困局
运维·分布式
三声三视2 小时前
Electron + 鸿蒙分布式投屏:PC 端一键推送画面到鸿蒙设备全实战
分布式·electron·harmonyos·鸿蒙·桌面
lvrongbao2 小时前
Kafka 场景化面试题top5: 事务与分布式一致性
分布式·kafka