VMware虚拟机搭建Hadoop+Spark集群实战指南

发布时间:2026/8/7 11:02:45

VMware虚拟机搭建Hadoop+Spark集群实战指南
1. 为什么选择VMware虚拟机搭建HadoopSpark集群在开始之前我们需要明确一个基本问题为什么要用虚拟机搭建大数据集群我在2018年第一次接触Hadoop时曾经尝试直接在物理机上部署结果因为网络配置错误导致整个实验室的网络瘫痪。这次教训让我深刻认识到虚拟机环境的价值——它提供了完美的沙箱实验环境。VMware Workstation Pro目前最新版为17作为业界领先的虚拟化平台具有几个不可替代的优势完整的快照功能你可以在每个关键步骤后创建系统快照出错时一键回滚网络隔离NAT和仅主机模式能避免对外部网络造成影响资源可控可以精确分配CPU核心和内存模拟真实集群环境硬件兼容避免了真实服务器可能遇到的驱动问题重要提示虽然VMware提供免费试用版但长期使用建议购买正版许可证。网上流传的密钥往往会导致不可预知的问题我在2023年就遇到过因为使用非正版密钥导致虚拟机突然崩溃的情况。2. 环境准备与基础配置2.1 硬件需求建议根据我多年搭建集群的经验推荐以下硬件配置宿主机至少16GB内存32GB更佳因为每个虚拟机节点建议分配4-8GBCPU支持VT-x/AMD-V虚拟化的四核以上处理器存储SSD硬盘至少100GB可用空间Hadoop很吃I/O性能我的当前测试环境配置供参考ThinkPad P15vi7-11800H (8核16线程)64GB DDR4内存1TB NVMe SSDVMware Workstation 17 Pro2.2 软件版本选择版本兼容性是大数据平台永远的痛。经过多次踩坑我总结出以下稳定组合组件推荐版本备注VMware17.0.2最新稳定版操作系统CentOS 7.92026年仍维护的最终7.x版本JavaJDK 8u381Hadoop官方推荐版本Hadoop3.3.62026年LTS版本Spark3.5.1兼容Hadoop 3.3.x的最新稳定版注意CentOS 8已停止维护而CentOS Stream的滚动更新特性不适合生产环境。如果必须用新系统Rocky Linux 9.x是更好的选择。2.3 虚拟机创建规范创建虚拟机时有几个关键设置经常被忽略虚拟磁盘类型选择SCSI非IDE性能更好网络适配器选择NAT模式初期或自定义VMnet开启CPU虚拟化引擎的虚拟化Intel VT-x/EPT选项内存设置中锁定全部内存避免交换我建议的集群规划3个节点1个NameNode 2个DataNode每个节点配置4GB内存2个CPU核心50GB磁盘动态分配桥接网络后期改为专用网络3. 系统级准备工作3.1 CentOS基础配置安装完CentOS后这些操作必不可少# 关闭SELinux避免权限问题 sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/config # 关闭防火墙实验环境 systemctl stop firewalld systemctl disable firewalld # 安装必备工具 yum install -y vim net-tools wget curl telnet lrzsz # 设置主机名分别在三个节点执行 hostnamectl set-hostname nn01 # NameNode hostnamectl set-hostname dn01 # DataNode1 hostnamectl set-hostname dn02 # DataNode2 # 配置hosts文件所有节点相同 cat /etc/hosts EOF 192.168.100.101 nn01 192.168.100.102 dn01 192.168.100.103 dn02 EOF3.2 SSH免密登录配置Hadoop集群管理依赖SSH配置步骤所有节点生成密钥ssh-keygen -t rsa将NameNode的公钥分发到所有节点ssh-copy-id nn01 ssh-copy-id dn01 ssh-copy-id dn02测试是否成功ssh dn01 date应该不需要密码常见问题如果遇到Permission denied错误检查以下文件权限~/.ssh 目录权限应为700~/.ssh/authorized_keys 权限应为6003.3 Java环境安装Hadoop对Java版本非常敏感建议这样安装# 下载JDK官网获取最新链接 wget https://download.oracle.com/java/18/latest/jdk-18_linux-x64_bin.rpm # 安装并配置环境变量 rpm -ivh jdk-18_linux-x64_bin.rpm cat /etc/profile EOF export JAVA_HOME/usr/java/default export PATH\$PATH:\$JAVA_HOME/bin EOF source /etc/profile验证安装java -version应该显示正确的版本信息4. Hadoop集群部署实战4.1 Hadoop安装与配置下载和解压Hadoopwget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz tar -zxvf hadoop-3.3.6.tar.gz -C /opt/ mv /opt/hadoop-3.3.6 /opt/hadoop关键配置文件修改所有节点相同hadoop-env.shexport JAVA_HOME/usr/java/default export HADOOP_HOME/opt/hadoop export HADOOP_LOG_DIR/var/log/hadoopcore-site.xmlconfiguration property namefs.defaultFS/name valuehdfs://nn01:9000/value /property property namehadoop.tmp.dir/name value/data/hadoop/tmp/value /property /configurationhdfs-site.xmlconfiguration property namedfs.replication/name value2/value /property property namedfs.namenode.name.dir/name value/data/hadoop/namenode/value /property property namedfs.datanode.data.dir/name value/data/hadoop/datanode/value /property /configurationworkers文件旧版是slavesdn01 dn024.2 集群初始化与启动仅在NameNode执行# 创建数据目录 mkdir -p /data/hadoop/{namenode,datanode,tmp} # 格式化HDFS hdfs namenode -format # 启动集群 start-dfs.sh验证集群状态hdfs dfsadmin -report应该能看到2个活动的DataNode4.3 YARN资源管理配置如果需要运行MapReduce作业还需要配置YARNmapred-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 valuenn01/value /property /configuration启动YARNstart-yarn.sh5. Spark集群部署与集成5.1 Spark安装配置下载和解压Sparkwget https://archive.apache.org/dist/spark/spark-3.5.1/spark-3.5.1-bin-hadoop3.tgz tar -zxvf spark-3.5.1-bin-hadoop3.tgz -C /opt/ mv /opt/spark-3.5.1-bin-hadoop3 /opt/spark环境变量配置cat /etc/profile EOF export SPARK_HOME/opt/spark export PATH\$PATH:\$SPARK_HOME/bin EOF source /etc/profile关键配置修改spark-env.shexport JAVA_HOME/usr/java/default export HADOOP_CONF_DIR/opt/hadoop/etc/hadoop export SPARK_MASTER_HOSTnn01 export SPARK_WORKER_MEMORY2gworkers文件dn01 dn025.2 启动Spark集群在NameNode执行/opt/spark/sbin/start-all.sh验证集群状态/opt/spark/sbin/spark-shell --master spark://nn01:70775.3 集成测试运行一个简单的WordCount示例val textFile sc.textFile(hdfs://nn01:9000/input/sample.txt) val counts textFile.flatMap(line line.split( )) .map(word (word, 1)) .reduceByKey(_ _) counts.saveAsTextFile(hdfs://nn01:9000/output/wordcount)6. 集群运维与问题排查6.1 常见错误解决方案DataNode无法启动检查日志/var/log/hadoop/hadoop--datanode-.log常见原因clusterID不匹配需要同步NameNode的VERSION文件Spark作业卡住检查资源分配YARN的资源配置是否足够查看Spark UIhttp://nn01:4040磁盘空间不足定期清理HDFS垃圾箱hdfs dfs -expunge6.2 性能优化建议HDFS调优参数!-- hdfs-site.xml -- property namedfs.datanode.max.transfer.threads/name value4096/value /propertySpark内存配置# spark-env.sh export SPARK_EXECUTOR_MEMORY4g export SPARK_DRIVER_MEMORY2gLinux系统调优# 增大文件描述符限制 ulimit -n 655356.3 监控方案基础监控配置Hadoop自带监控http://nn01:9870Spark监控http://nn01:8080简易监控脚本watch -n 5 hdfs dfsadmin -report; yarn node -list我在实际运维中发现当DataNode磁盘使用超过90%时经常会出现各种奇怪的问题。建议设置定期检查脚本当磁盘使用超过85%时自动报警。

相关新闻

ASMR音频制作技术全解析:从双耳录音到Python自动化处理

ASMR音频制作技术全解析:从双耳录音到Python自动化处理

2026/8/7 11:02:45

1. 这篇文章真正要解决的问题如果你是一名开发者,尤其是从事音视频处理、内容创作或AI应用开发的工程师,当看到“ASMR”、“睡眠导入”这类关键词时,第一反应可能觉得这只是娱乐内容,与技术无关。然而,这个看似简单的“…

Umi-OCR免费离线文字识别:3步开启高效办公新体验

Umi-OCR免费离线文字识别:3步开启高效办公新体验

2026/8/7 11:02:45

Umi-OCR免费离线文字识别:3步开启高效办公新体验 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。…

Java数组合并全解析:从System.arraycopy到Stream API的性能与实战

Java数组合并全解析:从System.arraycopy到Stream API的性能与实战

2026/8/7 11:02:45

1. 从“合并”说起:为什么数组操作是Java面试的常青树? “把两个数组合并成一个”,这听起来像是Java入门第一周的课后练习题,简单到让人不屑一顾。但如果你在面试中遇到这个问题,只是草草写下一行 System.arraycopy …

Video2X:三步将模糊视频无损升级到4K超高清的终极AI视频增强方案

Video2X:三步将模糊视频无损升级到4K超高清的终极AI视频增强方案

2026/8/7 11:52:47

Video2X:三步将模糊视频无损升级到4K超高清的终极AI视频增强方案 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trendin…

Unity WebGL移动端性能优化实战:破解加载慢、卡顿与兼容性难题

Unity WebGL移动端性能优化实战:破解加载慢、卡顿与兼容性难题

2026/8/7 11:52:47

1. 项目概述:为什么Unity WebGL在移动端“水土不服”? 如果你是一名Unity开发者,想把精心制作的游戏或交互应用发布到网页上,WebGL无疑是最直接的选择。它让你无需安装任何插件,用户打开浏览器就能玩。但当你兴冲冲地把…

3步玩转geojson.io:浏览器中的免费GIS地图编辑器终极指南

3步玩转geojson.io:浏览器中的免费GIS地图编辑器终极指南

2026/8/7 11:52:47

3步玩转geojson.io:浏览器中的免费GIS地图编辑器终极指南 【免费下载链接】geojson.io A quick, simple tool for creating, viewing, and sharing spatial data 项目地址: https://gitcode.com/gh_mirrors/ge/geojson.io 还在为复杂的地理数据可视化工具而烦…

MySQL架构与性能优化全解析

MySQL架构与性能优化全解析

2026/8/7 11:52:47

1. MySQL架构全景解析:从一条SQL到磁盘IO的完整旅程 作为关系型数据库的标杆产品,MySQL的架构设计堪称经典。当我第一次拆解其内部实现时,那种精妙的分层协作机制令人印象深刻。整个体系可以划分为四层架构: ![MySQL架构分层示意…

分布式能源系统无功优化与多目标控制实践

分布式能源系统无功优化与多目标控制实践

2026/8/7 11:52:47

1. 电网故障下分布式能源系统的无功优化挑战 在分布式能源系统并网运行过程中,电网故障是最严峻的考验之一。当电网出现电压骤降、频率波动或短路故障时,传统的集中式无功补偿装置往往响应迟缓,而分布式能源系统中的并网转换器(Gr…

3个数据库管理场景的救星:探索Navicat密码解密工具的实用价值

3个数据库管理场景的救星:探索Navicat密码解密工具的实用价值

2026/8/7 11:42:46

3个数据库管理场景的救星:探索Navicat密码解密工具的实用价值 【免费下载链接】navicat_password_decrypt 忘记navicat密码时,此工具可以帮您查看密码 项目地址: https://gitcode.com/gh_mirrors/na/navicat_password_decrypt 你是否曾因为忘记Navicat中保存…

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

2026/8/6 19:19:00

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am…

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

2026/8/5 6:02:27

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架…

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

2026/8/5 8:19:55

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,…

CAD图库管理:从文件归档到设计资产管理的效率革命

CAD图库管理:从文件归档到设计资产管理的效率革命

2026/8/7 0:02:15

你肯定遇到过这种情况:打开一个老项目,想找某个特定的图块——比如一个标准的门、一个特定的设备符号,或者一个公司logo。你记得它就在某个DWG文件里,或者曾经从某个同事那里拷来过。于是,你开始在一堆命名混乱的文件夹…

5分钟掌握Wand-Enhancer:2026年终极WeMod专业版免费解锁指南

5分钟掌握Wand-Enhancer:2026年终极WeMod专业版免费解锁指南

2026/8/7 0:02:15

5分钟掌握Wand-Enhancer:2026年终极WeMod专业版免费解锁指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer Wand-Enhancer是一款功能强…

“Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求

“Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求

2026/8/7 0:02:15

“Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求。而“软件测试”是质量控制的关键手段之一,属于QC范畴下的具体实践,其目标是发现缺陷、验证功能正确性、评估软件质量属…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/6 5:43:30

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/7 8:02:42

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/4 15:11:03

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…