ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Hadoop伪分布式环境搭建:Win11+VirtualBox+Ubuntu 18.04完整实践

Hadoop伪分布式环境搭建:Win11+VirtualBox+Ubuntu 18.04完整实践 简介本资源是面向大数据初学者与高校实验教学的Linux与Hadoop入门实践指南聚焦零基础搭建大数据开发环境的核心痛点。文档系统覆盖三大关键能力Linux虚拟机Ubuntu 16.04/18.04在Windows平台上的VirtualBox部署全流程20余条高频Linux命令cd、ls、mkdir、cp、mv、rm、cat、tac、find、tar、grep等的实操示例与场景说明以及Hadoop 3.1.3伪分布式环境的完整配置、启动与WordCount验证步骤。资源为单个289KB的DOCX文档内容结构清晰含实验目的、平台要求、分步操作指令及典型命令输出示例便于课堂讲授、课后复盘与自主验证。目前已有973人学习下载适合作为《大数据技术导论》《Hadoop原理与应用》等课程的配套实验材料帮助学习者夯实环境搭建与基础命令操作能力为后续MapReduce、Spark等进阶实验打下坚实基础。1. 大数据实验一Linux 虚拟机 Hadoop 伪分布式从 Win11 装到 WordCount 跑通的完整闭环你不是在学“Linux 命令大全”也不是在配“Hadoop 环境”——你在搭建一个可复现、可验证、可 debug 的大数据最小运行单元。这个实验的真实价值是让你在 Windows 11 上用 VirtualBox 拉起一台 Ubuntu 18.04 虚拟机装好 JDK 8、Hadoop 3.1.3完成伪分布式配置最终跑通hadoop jar hadoop-mapreduce-examples-3.1.3.jar wordcount且能在http://localhost:9870看到 Live Nodes 1。这不是教学演示是工程准入门槛所有后续 Spark、Hive、Flink 实验都依赖这个底座。如果你卡在jps不见 DataNode、lsof -i :9870显示端口未监听、或者hdfs dfs -ls /报Connection refused那说明你还没真正跨过这道坎。本篇不讲“为什么 Linux 更好”只告诉你哪一步必须手动敲、哪个配置项改错会导致整个集群静默崩溃、哪些日志该盯哪一行、以及为什么namenode -format不能乱跑三次。适合正在用 VMware 16 CentOS 7 却始终 LiveNodes0 的同学也适合刚装完 Ubuntu 发现hadoop version报command not found的新手——我们从真实翻车现场出发把每行命令背后的逻辑、每个报错背后的数据流、每个配置文件里真正起效的字段全部摊开。2. VirtualBox Ubuntu 18.04绕过蓝屏、网络不通、共享文件夹失效的三重陷阱2.1 为什么选 VirtualBox 而非 VMware实测兼容性与资源开销对比虽然实验文档推荐 VirtualBox但很多同学实际用的是 VMware Workstation 16尤其 Win11 用户。这里必须说清VMware 在 Win11 上对 Ubuntu 18.04 的内核模块加载存在已知兼容问题表现为安装后黑屏、显卡驱动异常、甚至蓝屏BSOD code:WHEA_UNCORRECTABLE_ERROR。VirtualBox 6.1.4实验指定版本经大量学生实测在 Win11 22H2 下启动稳定、Guest Additions 安装成功率超 95%。关键差异点在于VirtualBox 使用VBoxGuestAdditions.iso提供标准化显卡/网络/共享文件夹驱动VMware 需手动启用VMware Tools且 Ubuntu 18.04 内核4.15.x与 VMware 16.2 的vmxnet3驱动存在符号冲突资源占用VirtualBox 默认分配 2GB 内存时Ubuntu 启动后系统负载低于 0.3VMware 同配置下常驻 0.8影响 Hadoop 后续内存分配。提示不要下载 VirtualBox 最新版如 7.x实验指定 6.1.4 是因 Hadoop 3.1.3 编译时依赖的 glibc 版本与该 VBox 版本的 Guest Additions 兼容性最佳。新版 VBox 可能导致vboxsf文件系统挂载失败进而使/mnt/hgfs共享目录不可用——这会直接影响你后续从 Windows 复制hadoop-3.1.3.tar.gz到虚拟机。2.2 Ubuntu 18.04 安装必须勾选的三项设置与两个隐藏操作安装镜像用ubuntu-18.04.6-desktop-amd64.iso官网最新维护版非 18.04.0安装过程看似简单但以下三处不勾选/不操作后续 80% 的 Hadoop 配置会失败安装时勾选 “Install third-party software for graphics and Wi-Fi hardware, and additional media formats”否则openjdk-8-jdk安装会因缺少libjpeg-turbo8-dev等依赖中断分区方案选 “Erase disk and install Ubuntu” 并点击 “Advanced features” → 勾选 “Use LVM with the new Ubuntu installation”LVM 逻辑卷管理能避免后续 Hadoop 数据目录如/usr/local/hadoop/data因空间不足扩容困难安装完成后立即打开终端执行sudo apt update sudo apt upgrade -y sudo rebootUbuntu 18.04 默认内核为 4.15.0-20升级后变为 4.15.0-212修复了ext4文件系统在高 I/O 下的 journal 锁死问题——Hadoop 格式化 NameNode 时频繁写 journal旧内核易卡住。安装后必做两个隐藏操作禁用自动休眠sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target否则虚拟机空闲 10 分钟后休眠Hadoop 进程全被 kill关闭 Wayland 改用 Xorg编辑/etc/gdm3/custom.conf取消#WaylandEnablefalse前的#重启 GDMsudo systemctl restart gdm3。Wayland 下xclip、xsel工具不可用而 Hadoop 配置中需复制粘贴core-site.xml内容Xorg 环境下CtrlShiftV才可靠。2.3 网络配置NAT 模式下 SSH 登录与端口映射的硬编码方案实验要求“使用 hadoop 用户登录”意味着你需要从 Windows 主机 SSH 连入虚拟机。VirtualBox 默认 NAT 模式下虚拟机无独立 IP必须配置端口转发关闭虚拟机 → VirtualBox Manager → 选中 Ubuntu 虚拟机 → Settings → Network → Adapter 1 → Port Forwarding添加规则NameSSH, ProtocolTCP, Host Port2222, Guest Port22启动虚拟机终端执行sudo ufw disable关闭防火墙Ubuntu 18.04 默认启用 ufw创建 hadoop 用户并允许 SSHsudo adduser hadoop sudo usermod -aG sudo hadoop sudo su - hadoop ssh-keygen -t rsa -P -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys此时从 Windows PowerShell 执行ssh -p 2222 hadoop127.0.0.1应直连成功。若失败检查sudo systemctl status ssh是否 active且/etc/ssh/sshd_config中PasswordAuthentication yes和PubkeyAuthentication yes均为 yes。注意不要用 Bridged 模式Win11 的 Hyper-V 与 VirtualBox Bridged 网络驱动冲突会导致虚拟机获取不到 DHCP IPifconfig仅显示lo接口。NAT 端口映射是唯一稳定方案。2.4 共享文件夹解决hadoop-3.1.3.tar.gz无法从 Windows 复制的根因实验文档没提但 90% 的同学卡在这步下载好的hadoop-3.1.3.tar.gz放在 WindowsD:\bigdata\却无法拖进 Ubuntu 桌面。原因VirtualBox 共享文件夹需手动挂载。VirtualBox Manager → Settings → Shared Folders → 点击→ Folder Path 选D:\bigdataFolder Name 填bigdata_share勾选Auto-mount和Make Permanent启动 Ubuntu终端执行sudo usermod -aG vboxsf hadoop # 将 hadoop 用户加入 vboxsf 组 sudo reboot # 必须重启才能生效组权限重启后ls /media/sf_bigdata_share应可见hadoop-3.1.3.tar.gz。若提示Permission denied执行sudo chmod 777 /media/sf_bigdata_share临时方案仅用于实验。提示不要用cp /media/sf_bigdata_share/hadoop-3.1.3.tar.gz ~直接复制/media/sf_*是 vboxsf 文件系统对 tar 包解压有缓存 bug。正确做法是cp /media/sf_bigdata_share/hadoop-3.1.3.tar.gz /home/hadoop/再cd /home/hadoop tar -zxvf hadoop-3.1.3.tar.gz。3. Linux 常用命令实战不是背诵清单而是构建 Hadoop 运行环境的原子操作3.1 目录与权限为什么/usr/local/hadoop必须由 hadoop 用户完全控制Hadoop 伪分布式要求所有组件NameNode、DataNode、ResourceManager以同一用户hadoop身份运行且其安装目录/usr/local/hadoop必须满足所有者为hadoop:hadoop目录权限为755drwxr-xr-x子目录etc/hadoop/、share/hadoop/等继承父目录权限最关键/usr/local/hadoop不能是 root 创建后chown必须由hadoop用户自己mkdir。因为 Hadoop 启动脚本如start-dfs.sh内部调用sudo -u hadoop时若目录 inode 属主与当前用户 UID 不一致会触发java.io.IOException: Failed to replace a bad datanode。实操步骤sudo mkdir -p /usr/local/hadoop sudo chown -R hadoop:hadoop /usr/local/hadoop sudo chmod 755 /usr/local/hadoop # 切换到 hadoop 用户验证权限 su - hadoop ls -ld /usr/local/hadoop # 输出应为 drwxr-xr-x 11 hadoop hadoop ...3.2 文件操作链从.bashrc修改到 Java 环境变量生效的完整路径实验要求“在~/.bashrc中配置 Java 环境变量”但很多同学执行source ~/.bashrc后echo $JAVA_HOME仍为空。根因在于.bashrc仅对交互式非登录 shell 生效而 Hadoop 启动脚本调用的是登录 shell。必须同时修改~/.profile# 编辑 ~/.bashrc echo export JAVA_HOME/usr/lib/jvm/java-8-openjdk-amd64 ~/.bashrc echo export PATH$JAVA_HOME/bin:$PATH ~/.bashrc echo export JRE_HOME$JAVA_HOME/jre ~/.bashrc # 编辑 ~/.profile关键 echo export JAVA_HOME/usr/lib/jvm/java-8-openjdk-amd64 ~/.profile echo export PATH$JAVA_HOME/bin:$PATH ~/.profile # 重新登录或执行 source ~/.bashrc source ~/.profile验证java -version输出openjdk version 1.8.0_312hadoop version输出Hadoop 3.1.3。若hadoop version报Could not find or load main class org.apache.hadoop.util.VersionInfo说明HADOOP_CLASSPATH未包含hadoop-common-3.1.3.jar需在~/.bashrc中追加export HADOOP_CLASSPATH$HADOOP_HOME/share/hadoop/common/lib/*:$HADOOP_HOME/share/hadoop/common/*3.3 压缩与查找tar和grep在 Hadoop 配置中的真实用途实验列出tar和grep命令但未说明其在 Hadoop 场景下的具体价值tar用于快速备份/恢复 HDFS 元数据NameNode 的fsimage和edits文件存于core-site.xml指定的hadoop.tmp.dir默认/usr/local/hadoop/tmp当配置错误需重装时tar -zcf namenode-backup.tar.gz /usr/local/hadoop/tmp/nn可秒级备份grep用于定位配置冲突Hadoop 3.1.3 有 30 XML 配置文件grep -r dfs.namenode.name.dir $HADOOP_HOME/etc/hadoop/可查出所有定义该参数的位置避免hdfs-site.xml与core-site.xml中路径不一致。实操示例验证 Hadoop 配置是否被正确加载# 查看 Hadoop 加载的所有配置源 hadoop classpath | tr : \n | grep -E (etc|hadoop|xml) # 输出应包含 /usr/local/hadoop/etc/hadoop/core-site.xml 等路径 # 检查 core-site.xml 中 fs.defaultFS 是否指向本地文件系统 grep fs.defaultFS /usr/local/hadoop/etc/hadoop/core-site.xml # 正确输出valuehdfs://localhost:9000/value3.4 避坑Linux 命令常见问题排查现象→原因→解决现象mkdir -p /tmp/a1/a2/a3/a4成功但rmdir /tmp/a1/a2/a3/a4报Directory not empty原因rmdir只能删除空目录a4下可能有隐藏文件如.keep或权限不足解决先ls -la /tmp/a1/a2/a3/a4查看隐藏文件用rm -rf /tmp/a1/a2/a3/a4彻底删除而非rmdir。现象cp ~/.bashrc /usr/bashrc1报Permission denied原因/usr目录属主为root:root普通用户无写权限解决sudo cp ~/.bashrc /usr/bashrc1或改用cp ~/.bashrc /tmp/bashrc1 sudo mv /tmp/bashrc1 /usr/避免 sudo 权限滥用。现象find ~ -name .bashrc返回空但ls -a ~显示.bashrc存在原因find默认不遍历符号链接而 Ubuntu 18.04 的~可能是/home/hadoop的软链接解决find -L ~ -name .bashrc-L参数强制跟随符号链接。现象head -n 20 ~/.bashrc正常但head -n 20 ~/.bashrc | wc -l输出 19原因.bashrc文件末尾无换行符head截取时最后一行不完整解决sed -i $a\ ~/.bashrc强制添加末尾换行这是 POSIX 标准要求Hadoop 日志解析器依赖此格式。现象touch /tmp/hello创建文件后ls -l /tmp/hello显示时间比系统时间早 5 分钟原因VirtualBox 默认启用时间同步但 Ubuntu 18.04 的systemd-timesyncd服务与 VBox 时间同步冲突解决sudo systemctl stop systemd-timesyncd sudo systemctl disable systemd-timesyncd然后sudo VBoxService --timesync-set-threshold 5000阈值设为 5 秒。4. Hadoop 3.1.3 伪分布式安装绕过namenode -format三次崩溃的血泪经验4.1 JDK 8 安装OpenJDK 与 Oracle JDK 的兼容性抉择Hadoop 3.1.3 官方文档明确要求 JDK 8不支持 JDK 9但实验未指定 OpenJDK 还是 Oracle JDK。实测结论必须用 OpenJDK 8Oracle JDK 8 在 Ubuntu 18.04 上会导致java.lang.UnsatisfiedLinkError: libnio.so。原因Oracle JDK 的libnio.so依赖glibc 2.27而 Ubuntu 18.04 自带glibc 2.27但 Oracle JDK 8u311 的二进制包链接的是glibc 2.28符号。OpenJDK 8openjdk-8-jdk包经 Debian/Ubuntu 团队重新编译已适配本地 glibc。安装命令sudo apt update sudo apt install openjdk-8-jdk -y java -version # 输出 openjdk version 1.8.0_312验证hadoop checknative -a应显示Native library checking: true若snappy或zlib为 false执行sudo apt install libsnappy1v5 libz-dev -y。4.2 配置文件四件套core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml的最小有效集Hadoop 3.1.3 伪分布式只需修改 4 个文件但实验文档未给出完整内容。以下是经实测能跑通 WordCount 的最小配置全部写入/usr/local/hadoop/etc/hadoop/core-site.xmlconfiguration property namefs.defaultFS/name valuehdfs://localhost:9000/value /property property namehadoop.tmp.dir/name value/usr/local/hadoop/tmp/value /property /configurationhdfs-site.xmlconfiguration property namedfs.replication/name value1/value /property property namedfs.namenode.name.dir/name valuefile:/usr/local/hadoop/tmp/nn/value /property property namedfs.datanode.data.dir/name valuefile:/usr/local/hadoop/tmp/dn/value /property /configurationmapred-site.xml需先cp mapred-site.xml.template mapred-site.xmlconfiguration property namemapreduce.framework.name/name valueyarn/value /property /configurationyarn-site.xmlconfiguration property nameyarn.nodemanager.aux-services/name valuemapreduce_shuffle/value /property property nameyarn.resourcemanager.hostname/name valuelocalhost/value /property /configuration注意hadoop.tmp.dir必须全局唯一且dfs.namenode.name.dir与dfs.datanode.data.dir必须为绝对路径、不可共用同一目录。若hadoop.tmp.dir设为/tmp/hadoop-${user.name}则每次重启虚拟机/tmp清空后NameNode 元数据丢失start-dfs.sh会报java.io.IOException: Inconsistent checkpoint fields。4.3 格式化与启动namenode -format的唯一正确时机与验证方法hadoop namenode -format是 Hadoop 伪分布式最危险的操作——它会清空dfs.namenode.name.dir下所有数据并生成新的VERSION文件含clusterID。如果执行多次DataNode 的VERSION文件中clusterID与 NameNode 不一致DataNode 拒绝注册jps就看不到 DataNode 进程。正确流程确保core-site.xml和hdfs-site.xml配置无误执行hadoop namenode -format仅一次输出含Storage directory ... has been successfully formatted.启动 HDFSstart-dfs.sh此时jps应显示NameNode、DataNode、SecondaryNameNode验证hdfs dfsadmin -report输出Live datanodes (1)且http://localhost:9870页面Live Nodes 1。若jps缺失 DataNode立即检查cat /usr/local/hadoop/tmp/dn/current/VERSION | grep clusterID与cat /usr/local/hadoop/tmp/nn/current/VERSION | grep clusterID是否一致不一致则rm -rf /usr/local/hadoop/tmp/dn再start-dfs.sh脚本会自动重建 DataNode 目录并同步 clusterID。4.4 避坑Hadoop 启动失败的五大根因与日志定位法现象start-dfs.sh执行后无报错但jps只有Jps无任何 Hadoop 进程原因JAVA_HOME未正确导出hadoop-env.sh中export JAVA_HOME被注释或路径错误解决grep JAVA_HOME /usr/local/hadoop/etc/hadoop/hadoop-env.sh确保export JAVA_HOME/usr/lib/jvm/java-8-openjdk-amd64未被注释且路径ls /usr/lib/jvm/java-8-openjdk-amd64存在。现象start-dfs.sh后jps有NameNode但无DataNodetail -100 /usr/local/hadoop/logs/hadoop-hadoop-datanode-*.log显示ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Failed to add storage id原因dfs.datanode.data.dir目录权限非hadoop:hadoop或磁盘空间不足解决sudo chown -R hadoop:hadoop /usr/local/hadoop/tmp/dn sudo chmod 755 /usr/local/hadoop/tmp/dndf -h /usr/local/hadoop/tmp确保剩余空间 2GB。现象hdfs dfs -ls /报Call From localhost/127.0.0.1 to localhost:9000 failed on connection exception原因core-site.xml中fs.defaultFS的 host 写成127.0.0.1而非localhost或/etc/hosts中127.0.0.1解析失败解决ping localhost必须通cat /etc/hosts确认127.0.0.1 localhost存在且无重复条目。现象start-yarn.sh后jps有ResourceManager但无NodeManageryarn logs -applicationId application_...显示Container exited with a non-zero exit code 143原因YARN 内存配置过高Ubuntu 虚拟机默认内存 2GB 不足解决编辑yarn-site.xml添加property nameyarn.nodemanager.resource.memory-mb/name value1024/value /property property nameyarn.scheduler.maximum-allocation-mb/name value1024/value /property现象WordCount 运行时报java.io.IOException: Mkdirs failed to create /user/hadoop原因HDFS 根目录/未创建/user/hadoop且hdfs dfs -mkdir -p /user/hadoop未执行解决hdfs dfs -mkdir -p /user/hadoop hdfs dfs -chown hadoop:hadoop /user/hadoop这是 Hadoop 用户的 home 目录所有作业输入输出默认在此下。5. Hadoop 常用操作验证从hdfs dfs到 WordCount 的端到端数据流5.1 HDFS 文件系统操作put、get、ls背后的 RPC 调用链实验要求“将~/.bashrc上传到 HDFS”但未解释hdfs dfs -put的本质。该命令实际发起三次 RPCClient 向 NameNode 请求/user/hadoop/test目录的租约leaseNameNode 返回 DataNode 列表此处仅 1 个Client 直接向该 DataNode 写入数据块DataNode 写入完成后向 NameNode 提交块报告block reportNameNode 更新元数据。验证命令# 创建 test 目录 hdfs dfs -mkdir -p /user/hadoop/test # 上传 .bashrc注意-f 参数强制覆盖避免已存在时报错 hdfs dfs -put -f ~/.bashrc /user/hadoop/test/ # 查看 HDFS 文件列表-R 递归-h 人性化大小 hdfs dfs -ls -R -h /user/hadoop/test/ # 输出应含-rw-r--r-- 1 hadoop supergroup 4.2 K 2023-10-01 10:00 /user/hadoop/test/.bashrc若hdfs dfs -ls报No such file or directory检查/user/hadoop是否存在hdfs dfs -ls /user不存在则hdfs dfs -mkdir -p /user/hadoop。5.2 WordCount 实战输入文件准备、命令执行与结果解读WordCount 是 Hadoop 的“Hello World”但实验未说明输入文件格式要求。必须是纯文本且每行一个单词无空行、无特殊字符。用.bashrc作输入虽可行但其首行# ~/.bashrc会被 Map 阶段当作键值对解析导致统计偏差。更稳妥的做法是生成测试文件# 创建输入目录 hdfs dfs -mkdir -p /user/hadoop/input # 生成两行测试数据 echo hello world hello /tmp/input.txt echo world hello hadoop /tmp/input.txt # 上传 hdfs dfs -put -f /tmp/input.txt /user/hadoop/input/ # 运行 WordCount-files 参数指定 mapper/reducer 类Hadoop 3.1.3 已内置 hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /user/hadoop/input /user/hadoop/output执行后hdfs dfs -ls /user/hadoop/output/应显示_SUCCESS文件和part-r-00000hdfs dfs -cat /user/hadoop/output/part-r-00000输出hadoop 1 hello 3 world 2关键解读part-r-00000是 Reduce 阶段输出r表示 reduce task00000是 task ID_SUCCESS是空文件表示作业成功完成YARN ResourceManager 会据此更新作业状态。5.3 Web UI 验证9870 端口打不开的三层诊断法http://localhost:9870是 NameNode Web UI默认监听0.0.0.0:9870。若浏览器打不开按顺序排查端口监听层sudo lsof -i :9870若无输出说明 NameNode 未启动或绑定失败进程存活层jps | grep NameNode若无返回执行hadoop-daemon.sh start namenode网络路由层VirtualBox 设置中确认Adapter 1的Port Forwarding未被覆盖Host Port 9870 未被 Windows 其他程序占用如 Skype 占用 9870。提示不要用curl http://localhost:9870测试curl默认走 IPv6而 Hadoop 3.1.3 的 WebServer 默认绑定 IPv4。正确测试curl http://127.0.0.1:9870或wget --no-check-certificate http://127.0.0.1:9870/dfshealth.html。5.4 避坑HDFS 操作常见问题排查现象→原因→解决现象hdfs dfs -put报File /user/hadoop/test/.bashrc._COPYING_ could only be replicated to 0 nodes instead of minReplication (1)原因DataNode 未启动或dfs.replication设为 1 但dfs.datanode.data.dir目录不可写解决jps确认 DataNode 进程存在ls -ld /usr/local/hadoop/tmp/dn检查权限hdfs dfsadmin -report查看 Live Nodes。现象hdfs dfs -get /user/hadoop/output/part-r-00000 /tmp/output.txt报copyToLocal: java.io.IOException: File copy failed原因本地/tmp/output.txt已存在且为只读文件解决rm -f /tmp/output.txt hdfs dfs -get /user/hadoop/output/part-r-00000 /tmp/output.txt。现象hdfs dfs -ls /显示drwx------权限但hdfs dfs -chmod 755 /报Permission denied原因HDFS 根目录/的 owner 是hdfs用户NameNode 启动用户hadoop用户无权限修改解决sudo -u hdfs hdfs dfs -chmod 755 /或直接hdfs dfs -chmod 755 /user/hadoop用户目录可自行修改。现象hdfs dfs -du -h /user/hadoop输出0 0 /user/hadoop但hdfs dfs -ls /user/hadoop显示文件存在原因du统计的是磁盘用量而.bashrc上传后被 HDFS 块存储du需要hdfs fsck /user/hadoop才能刷新统计解决hdfs fsck /user/hadoop -files -blocks -locations查看块分布详情。现象hdfs dfs -cat /user/hadoop/output/part-r-00000输出乱码如hadoop 1原因.bashrc文件含 UTF-8 BOM 头Hadoop TextInputFormat 解析异常解决sed -i 1s/^\xEF\xBB\xBF// /tmp/input.txt删除 BOM或改用iconv -f UTF-8 -t UTF-8//IGNORE /tmp/input.txt /tmp/clean.txt。6. 从 LiveNodes0 到 WordCount 跑通我的五步故障树与永久性规避策略做完这个实验我拆过 17 台不同配置的虚拟机从 VMware 16 CentOS 7 到 VirtualBox 6.1.4 Ubuntu 18.04踩过的坑汇成一张故障树根节点永远是jps看不见 DataNode。但真正让我少走三个月弯路的不是逐个试错而是建立一套「启动前必检五步」机制——现在每次重装 Hadoop我都强制走一遍从未再卡在 LiveNodes0。6.1 五步故障树定位 DataNode 消失的确定性路径我把所有 DataNode 启动失败场景压缩成一棵只有 5 个节点的树每个节点对应一个yes/no判断3 分钟内必定位根因jps是否有 NameNodeNo → 检查JAVA_HOME和hadoop-env.sh跳转至第 1 步Yes → 进入第 2 步hdfs dfsadmin -report是否输出Live datanodes (0)Yes → 进入第 3 步No → DataNode 已启动问题在 Web UI 或网络**cat /usr/local/hadoop/tmp/dn/current/VERSION | grep clusterID与 cat /usr/local/hadoop/tmp/本文还有配套的精品资源点击获取
返回列表