news 2026/10/22 1:05:12

华为云大数据实验:Hadoop与Spark集群搭建全流程指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
华为云大数据实验:Hadoop与Spark集群搭建全流程指南

简介:华为云大数据实验报告完整覆盖云主机搭建Hadoop、云服务承载数据任务、BigData Pro一站式方案部署以及大数据交互式查询四部分,面向正在学习华为云大数据、需要完成课程实验或准备实验报告的高校学生与云平台运维入门者,也适合备考华为云大数据认证的读者。压缩包仅包含1个docx格式文档,大小4.36MB,目录围绕四个实验展开,包含实验背景、操作过程与结果验证,便于按章节查阅。已有2448人学习下载,适合作为实验参考。文档详细记录了弹性云服务器与OBS对象存储的配置、访问密钥设置、Hadoop集群多节点搭建、SSH免密通信测试、Spark环境联动以及SQL交互式查询等关键环节,还保留了节点配置与命令输出等过程信息,可直接对照复现,也能帮助梳理实验思路、节省报告撰写时间。

1. 为什么是华为云大数据实验:从四台ECS到一套可验收的集群方案

某高校的大数据课程设计任务书下来时,摆在面前的是一个很实际的问题:要在真实的云环境里把Hadoop集群和Spark集群搭起来,还要跑通WordCount和大数据交互式查询,最后交一份能通过答辩的实验报告。不少同学拿到任务第一反应是装虚拟机,但装着装着就发现,虚拟机的网络隔离、资源分配、快照恢复全是坑,折腾两周还没见到Hadoop进程起来。于是方向转向了华为云——弹性云服务器ECS按需购买、对象存储OBS存数据、BigData Pro提供一站式大数据平台,这套云上方案的好处是基础设施不用自己管,买完机器就能开始搭集群。

这份实验报告覆盖了四个完整环节:云主机实现大数据、云服务实现大数据、BigData Pro综合实验、大数据交互式查询。它解决的问题是让一个没有云平台经验的学习者,照着步骤就能买ECS、建OBS、配AK/SK、搭Hadoop集群、再把Spark跑起来,最终在云上完成一次完整的MapReduce计算和SQL查询。适合正在做大数据课程设计的本科生、准备华为云认证的学习者,以及需要在云上快速部署一套可用Hadoop环境做POC验证的从业者。

我拿到这份报告后完整走了一遍流程,给我的直观感受是:它把从零到WordCount跑通的全过程变成了可复现的步骤,但步骤背后缺的是设计逻辑——为什么要四个节点、为什么用AK/SK而不是密码登录、为什么先关防火墙再配互信。本文就把这些逻辑补全,让读者既能照着做,也能讲清楚为什么这么做。

2. 云上环境准备与总体设计:买ECS、建OBS,把四节点规划想清楚再动手

2.1 华为云环境初始化:ECS购买、OBS创建与AK/SK配置

整个实验链条的第一步不是装软件,而是把云上资源准备好。报告中买的是弹性云服务器ECS,节点数量是四台,对应node1到node4。为什么要四台而不是一台?因为Hadoop集群的经典最小验证形态是分布式——一台做NameNode,另外几台做DataNode和NodeManager,单机版Hadoop体验不到数据块分布和任务调度的真实过程。四台节点是我们这个场景里性价比和实验完整度的平衡点。

购买ECS时的关键参数如下表所示,这些参数直接决定了后续集群能否稳定运行:

配置项推荐值说明
规格通用计算型,2核4GB起步四台至少留出20GB内存余量跑Hadoop进程
镜像CentOS 7.x 或 openEuler兼容OpenJDK和Hadoop生态
系统盘40GB以上Hadoop日志和临时文件很占空间
网络同一VPC内四台机器需要在同一内网,内网IP互通
安全组放通22端口和集群通信端口后续关闭防火墙时仍需保留SSH端口

购买完ECS后,下一步是创建OBS对象存储服务。OBS在这个实验里的角色是数据的持久化底座——HDFS虽然能存数据,但集群销毁后数据就没了,OBS桶里的数据可以独立存续。建桶时注意区域要和ECS保持一致,否则跨区域访问会有额外的延迟和流量费用。报告中提到的地址是obs.cn-north-4.myhuaweicloud.com,这是华北区的节点地址,区域不一致时这个地址要换成对应区域的Endpoint。

AK/SK的获取是另一个关键动作。在华为云控制台里新增用户时,会生成一对Access Key Id和Secret Access Key,下载的credentials.csv文件里就保存了这对密钥。实验报告里有一组示例值——访问密钥ID是S8RSFKYBTOSPA9YX92XB,Secret Access Key同样是一长串字符。需要注意的是,AK/SK相当于云账号的一部分权限凭证,实验中用到的roy_yuki这个子用户,权限范围应该限定在OBS和ECS的操作范围里,避免使用根账号的密钥。

提示:AK/SK泄露的风险比密码泄露更大。实验做完后,建议在IAM里定期轮换密钥,不要把它提交到代码仓库里。

2.2 四节点集群的总体架构:IP规划、主机名映射与角色划分

四台ECS买完后,第一步不是急着装JDK,而是先做网络规划。报告里给了四台节点的IP和主机名对应关系:192.168.0.10对应ecs-ca89-0001,192.168.0.53对应ecs-ca89-0002,192.168.0.169对应ecs-ca89-0003,192.168.0.77对应ecs-ca89-0004。这里的内网IP是华为云VPC自动分配的,可以直接用,但要注意每台机器的主机名必须和IP对应起来,否则后续SSH互信会找错目标。

主机名映射的配置集中在/etc/hosts文件里。四台节点都要执行同样的配置,把IP和主机名的对应关系写进去。为什么要统一配置hosts?因为Hadoop的NameNode在启动时会把主机名和地址写入元数据,如果各节点解析到的名称不一致,DataNode注册时就会报错,而且这类错误非常隐蔽,日志里只显示主机名不匹配。以下是在四台节点上分别执行的配置:

# 在node1~node4的 /etc/hosts 中追加以下映射 192.168.0.10 ecs-ca89-0001 192.168.0.53 ecs-ca89-0002 192.168.0.169 ecs-ca89-0003 192.168.0.77 ecs-ca89-0004

配置完hosts后可以用ping ecs-ca89-0002验证一下,如果通说明域名解析生效了。这一步看起来简单,但很多同学会漏掉——只在node1上配置了hosts,其他节点还是用IP互访,表面能通,实际在Hadoop启动时NameNode回写给DataNode的地址是hostname,DataNode解析不了就直接注册失败了。

角色划分上,node1承担NameNode和ResourceManager,node2到node4承担DataNode和NodeManager。这是最常规的主从架构,node1是大脑,负责管理元数据和资源调度;其余节点是计算和存储的执行者。实验报告的目录里显示,实验一是云主机实现大数据,实验二是云服务实现大数据,综合实验一才真正进入BigData Pro。也就是说,前面的基础环境配置会重复出现,因为每次实验都是独立的环境,需要重新验证。

2.3 基础环境统一:关闭防火墙、安装OpenJDK

集群内的机器要互相通信,第一道障碍就是防火墙。CentOS默认开启firewalld,它会挡住Hadoop各组件之间的端口,比如NameNode的8020端口、DataNode的9864端口、ResourceManager的8088端口。最稳妥的做法是直接在四台节点上关闭防火墙,并禁止开机自启:

# node1~node4 分别执行 systemctl stop firewalld systemctl disable firewalld

关闭防火墙后检查状态,看到inactive就说明已经关掉了。有些同学只执行了stop没有执行disable,重启云服务器后防火墙又自动起来了,集群再次通信失败,这就是后文要讲的典型翻车场景之一。

然后是安装Java环境。Hadoop 3.x版本需要JDK 8以上,报告中用的是OpenJDK。在线下载安装包的方式比较稳定,因为华为云镜像站内网速度快,比直接在Linux终端里从Oracle官网下载效率高得多。安装命令在不同发行版上有差异,CentOS 7用yum安装,openEuler用dnf,但核心思路一致——把Java装到统一目录,配置JAVA_HOME环境变量:

# 以CentOS 7为例,node1~node4分别执行 yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel # 验证Java是否安装成功 java -version # 配置JAVA_HOME环境变量,写入 /etc/profile export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export PATH=$PATH:$JAVA_HOME/bin

安装完成后执行source /etc/profile让环境变量生效。这里有个细节:Hadoop自带的脚本会读取JAVA_HOME,如果这个变量没配置,启动时直接报错说不认识JAVA_HOME。四台节点都要装,缺一台就可能导致某个节点上的DataNode起不来。装好后建议用java -version逐一确认Java版本一致,避免出现JDK版本不同的隐性问题——虽然Hadoop允许小版本差异,但实验环境里保持一致能少碰很多玄学问题。

3. Hadoop集群搭建:SSH互信、安装包部署与WordCount验证

3.1 SSH无密码跳转:分布式集群管理的第一道门槛

Hadoop集群的管理方式是"单点登录、全局执行"——从node1上执行 start-dfs.sh,NameNode会通过SSH登录到各DataNode节点,远程拉起进程。如果SSH每次都要输密码,脚本就无法自动执行,集群也就起不来。所以搭建集群的第二步,就是配置node1到其他三个节点的SSH免密登录。

报告里展示了node1和node2的SSH公钥示例,内容是rsa算法生成的公钥串,结尾是root@ecs-ca89-000X的格式。实际配置流程是先在每台节点上执行ssh-keygen -t rsa生成本机密钥对,然后把公钥内容追加到目标节点的/root/.ssh/authorized_keys里。如果只有node1需要管理全集群,那只需要node1免密登录其他节点;但报告里的做法是四个节点两两互信,也就是node1能免密登录node2、node3、node4,反过来也要能登录。这个差异反映的是实验设计思路——报告要求验证节点间"能够无密码跳转到目的节点"。

# 在node1上生成密钥对,一路回车即可 ssh-keygen -t rsa -P '' # 将node1的公钥复制到node2,node2的地址换成对应IP cat ~/.ssh/id_rsa.pub | ssh root@192.168.0.53 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" # 验证免密登录 ssh node2

执行完上面的命令后会看到提示选择yes,输入一次密码后就把公钥传过去了,以后再登录就不用密码。同理,将node3和node4的公钥也放到node1上。报告中的验证方法是分别执行ssh node1到ssh node4,选择yes后确保能跳转。这个步骤做完后,集群的管理通路就打通了,后面启动Hadoop时就不需要交互式输入密码。

3.2 Hadoop安装包部署与核心配置:core-site.xml和hdfs-site.xml的要点

SSH互信配置完成后,进入Hadoop本体安装。实验报告在"下载安装包下载jar包下载openjdk"这部分没有贴详细的下载URL,实际操作中建议从华为云镜像站或Apache官网下载稳定的Hadoop 3.3.x版本。下载完成后解压到/usr/local/hadoop目录,并配置环境变量。

Hadoop的核心配置集中在etc/hadoop目录下的几个XML文件里。core-site.xml负责定义文件系统的访问地址,hdfs-site.xml负责配置HDFS的副本数和NameNode元数据存储路径。对一个四节点的实验集群来说,副本数默认是3,正好能覆盖四台机器中的三台,保存数据的可靠性没问题。以下是core-site.xml的最小配置:

<?xml version="1.0" encoding="UTF-8"?> <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://ecs-ca89-0001:8020</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/data/hadoop/tmp</value> </property> </configuration>

hdfs-site.xml里需要注意的配置项是dfs.replication和dfs.namenode.name.dir。前者控制数据块副本数,实验环境里可以设为2,因为四台节点中有任意一台宕机时,副本数为2仍然能保证数据不丢;后者是NameNode元数据的本地存储路径,建议放在单独挂载的数据盘上,避免系统盘故障连带元数据丢失。

配置完成后,先格式化NameNode——hdfs namenode -format。这个命令只在第一次执行,后续重启集群时不能重复执行,否则会清空NameNode的元数据,导致DataNode上报的块信息对不上,大家常说的"格式化一时爽,重启火葬场"就是这个道理。格式化时注意观察输出是否有successfully formatted字样,没有的话检查JAVA_HOME和目录权限。

3.3 WordCount跑通:验证Hadoop集群真正可用的第一步

Hadoop集群搭好后,第一件事就是用自带示例程序跑WordCount。这个程序虽然简单,但涵盖了MapReduce的完整流程:Map阶段读取文本文件按空格分词,Shuffle阶段按键聚合,Reduce阶段统计每个词出现的次数。它能验证的不只是集群进程是否存活,还包括数据节点间的数据传输、任务调度和结果回写。

# 在node1上启动HDFS和YARN start-dfs.sh start-yarn.sh # 创建测试目录并上传数据文件 hdfs dfs -mkdir -p /input hdfs dfs -put /root/wordcount_data.txt /input/ # 运行WordCount hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /input /output # 查看计算结果 hdfs dfs -cat /output/part-r-00000

跑WordCount时会先经历一段时间的Map和Reduce进度输出,如果看到Map 100% Reduce 100%就说明作业完成。查看part-r-00000文件即可看到分词统计结果。有的同学会问,为什么不能用hdfs dfs -cat直接打印整个输出目录,因为MapReduce的输出结果会写入多个part文件,需要逐个查看或用-text合并。

这个环节实验报告里标注了"成功实现",但实际跑通的过程中最常遇到的错误是java.io.FileNotFoundException——输入路径不存在。这通常是因为hdfs dfs -put上传失败,可能是/tmp目录权限问题,也可能是HDFS的NameNode没有完全启动。排查方法是用hdfs dfs -ls /查看根目录是否能正常列出。另一个常见问题是YARN的ResourceManager没起来,MapReduce作业就一直停在ACCEPTED状态,这时用jps命令检查node1上的进程列表,看有没有ResourceManager这个进程。

4. BigData Pro与Spark集群:从单机实验到一站式云上大数据平台

4.1 为什么综合实验要换到BigData Pro

前面的实验一和实验二是直接用ECS手动搭建环境,综合实验一则引入了华为云的BigData Pro。从实验设计的角度讲,这一步是从"手工造轮子"到"用成熟平台"的跃迁——手动搭建的好处是能理解组件间的关系,但生产环境里没人会这样操作,云平台提供的一站式大数据服务才是实际工作中的常态。

BigData Pro的价值在于把Hadoop、Spark、Hive等组件做成开箱即用的托拉拽部署,Web界面上勾选版本、配置节点数量,平台自动完成安装和初始化,大幅缩短环境搭建时间。实验报告里BigData Pro的流程是"准备华为云环境→购买ECS→购买OBS→搭建Hadoop集群→搭建Spark集群",跟实验一的动作类似,但这里的ECS购买和集群部署是直接在BigData Pro的控制台里完成的,不需要再手动下载安装包和改配置文件。

换到BigData Pro后,OBS的使用逻辑也变了——之前OBS是独立的数据存储,现在OBS可以直接挂载为Hadoop的文件系统,实现数据存储和计算分离。这种架构的好处是计算集群可以随时释放,数据留在OBS里不会丢,下次建集群直接关联同一个桶就能继续处理数据。实验报告里购买完OBS后进入桶,可以看到IPv4地址和双栈地址——obs.cn-north-4.myhuaweicloud.com是IPv4访问地址,obs.dualstack.cn-north-4.myhuaweicloud.com支持IPv6和IPv4双栈,选哪个取决于ECS所在VPC的网络类型。

4.2 OBS与Hadoop集群互联:对象存储怎么变成HDFS

实验报告在"测试与OBS互联"这个环节,验证的就是Hadoop集群能否通过OBS协议访问桶里的数据。这个功能的原理是Hadoop的OBSA(OBS Adapter)机制——华为云提供了一个实现了Hadoop FileSystem接口的jar包,放进Hadoop的classpath后,hdfs://协议的命令就能直接操作obs://协议的路径。以下是验证互联的核心操作:

# 将OBSA jar包放入Hadoop的share目录 cp /root/obs-hadoop-plugin.jar /usr/local/hadoop/share/hadoop/common/lib/ # 在core-site.xml中追加OBS相关配置 <property> <name>fs.obs.access.key</name> <value>你的AK</value> </property> <property> <name>fs.obs.secret.key</name> <value>你的SK</value> </property> <property> <name>fs.obs.endpoint</name> <value>obs.cn-north-4.myhuaweicloud.com</value> </property> # 通过HDFS命令访问OBS桶 hdfs dfs -ls obs://你的桶名/

配置完成后,Hadoop集群里的计算任务可以直接读取OBS中的数据,也可以把计算结果写回OBS。这个机制的实用意义在于,团队不必为每个临时任务单独准备HDFS存储,数据统一放在OBS里按需挂载,既能控制成本又方便数据共享。

4.3 Spark集群搭建:内存计算与Hadoop共存的关键配置

综合实验一的最后一个环节是Spark集群搭建。Spark和Hadoop不是替代关系,而是协作关系——Spark负责高速的内存计算,Hadoop的YARN负责资源调度,HDFS或OBS负责数据存储。实验里搭建Spark集群时要注意的适配点是Spark版本和Hadoop版本的兼容性,Spark 3.x配合Hadoop 3.x是当前最稳的组合。

Spark的部署方式有standalone、YARN和Mesos三种模式。实验环境中建议使用YARN模式,因为Hadoop集群已经跑起来了,Spark作业直接提交到YARN上做资源分配,和MapReduce作业共享同一套资源管理,能更真实地体验生产环境的调度逻辑。Spark相关的核心配置如下:

# spark-env.sh 中指定Java和Hadoop配置路径 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export HADOOP_HOME=/usr/local/hadoop export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop export SPARK_MASTER_HOST=ecs-ca89-0001 # spark-defaults.conf 中指定master为yarn模式 spark.master yarn spark.eventLog.enabled true spark.eventLog.dir hdfs://ecs-ca89-0001:8020/spark-logs

Spark装好后,可以先启动spark-shell做一个极简验证:

# 启动spark-shell,跑一个简单的RDD计算 spark-shell --master yarn --deploy-mode client # 在scala终端中执行 val data = sc.textFile("hdfs://ecs-ca89-0001:8020/input/wordcount_data.txt") val counts = data.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_ + _) counts.collect().foreach(println)

这里要说明的是,用spark-shell只会启动一个交互式客户端,真正的分布式作业要提交jar包执行。实验报告里的综合实验四——大数据交互式查询,就是利用Spark SQL组件来实现类SQL的查询体验,通过创建一个临时视图,然后写SQL语句去查询数据,底层的分布式计算对使用者是屏蔽的,这就是大数据交互式查询的核心理念。

5. 避坑排查:华为云大数据实验最容易翻车的四个点

5.1 AK/SK配置错误导致OBS连接失败

现象:bin/hdfs dfs -ls obs://桶名 执行后报错,提示AccessDenied或403 Forbidden。

原因:AK/SK填写错误,或者使用的子用户没有OBS的操作权限。华为云IAM用户的权限是独立配置的,创建用户时如果不勾选OBS相关的策略,即使密钥正确也无法访问桶。

解决:先确认credentials.csv里的AK/SK与实际配置是否一致,注意大小写和特殊字符。然后到控制台的IAM页面检查该用户绑定的权限策略,确保包含OBS FullAccess或OBS ReadOnlyAccess。最后确认桶的权限设置,如果桶是私有桶,必须通过AK/SK访问;如果是公共读桶,直接通过URL就能访问,但实验里推荐私有桶配合AK/SK,更接近生产环境的安全要求。

5.2 SSH互信配置后仍然提示输入密码

现象:在node1上执行ssh node2正常免密,但执行ssh node3还是提示输入密码。

原因:node3的公钥没有正确追加到node1的authorized_keys里,或者node3的authorized_keys文件权限不对(应该为600),.ssh目录权限不对(应该为700)。Linux的SSH对目录和文件的权限有严格要求,权限过宽会直接忽略这个公钥。

解决:登录node1,检查/root/.ssh/authorized_keys文件里是否包含node3的公钥。没有的话手动追加。然后用chmod 700 /root/.ssh和chmod 600 /root/.ssh/authorized_keys修正权限。这个坑特别隐蔽,我刚开始配置集群时,总是在找网络和防火墙的毛病,最后发现是权限多了一个group可读位,SSH就静默拒绝了公钥。从那之后我每次都先检查权限,再看别的。

5.3 Hadoop集群启动后DataNode进程数少一个

现象:start-dfs.sh执行后没有报错,但jps查看进程时发现四台机器只有三台有DataNode,缺的那台进程根本没启动。

原因:这个问题的原因可能是多方面的,最常见的是该节点的hosts配置错误,导致NameNode无法解析主机名;另一个可能是该节点的/tmp/hadoop目录权限不足,DataNode启动时无法写入文件,悄悄退出了。

解决:先单独在该节点上执行hadoop-daemon.sh start datanode,观察启动日志的输出。日志里如果出现UnknownHost,就是hosts配置的问题,重新检查该节点的/etc/hosts。如果出现Permission denied,就清理该节点HADOOP临时目录并重建权限:rm -rf /data/hadoop/tmp && mkdir -p /data/hadoop/tmp && chmod 755 /data/hadoop/tmp。不要动不动就格式化NameNode,那是最后的手段,格式化一次的成本是所有节点的数据全清空。

5.4 WordCount卡在ACCEPTED状态不执行

现象:WordCount作业提交后状态一直是ACCEPTED,既不开始执行也不报错,过几分钟后失败退出。

原因:这个情况十有八九是YARN的ResourceManager没有正确分配资源。可能的原因包括:NodeManager进程没有在数据节点上启动、内存配置超出ECS实际可用内存、或者4GB内存的ECS开了太多大型服务导致内存紧缺。

解决:先用yarn node -list查看NodeManager的注册情况,应该能看到4个节点。如果只有1个或0个,说明NodeManager启动异常,查看日志定位原因。然后用free -h检查内存余量,YARN的默认配置里每个容器可能分配1GB内存,如果主机总内存只有4GB,同时跑HDFS、YARN、Spark可能导致内存不足。实验环境的合理配置是把yarn.nodemanager.resource.memory-mb调小到2048,把yarn.scheduler.maximum-allocation-mb同步调低,让每个任务用更少的内存。

5.5 镜像差异导致安装命令不统一

现象:同样的安装命令在node1上执行成功,在node2上报command not found。

原因:四台ECS购买时如果不指定相同的镜像,后台可能会分配不同的操作系统版本,比如一台是CentOS 7.x,另一台是openEuler 20.03。CentOS的包管理是yum,openEuler 20.03是dnf,命令自然不同。

解决:购买ECS时务必统一选择同一个镜像版本。如果已经买完了,在每台节点上执行cat /etc/os-release确认系统类型,按各自的包管理器执行安装。这套实验的推荐配置是全部使用CentOS 7.9,因为这个版本在Hadoop生态里被测试得最多,网上能搜到的坑也最全。

6. 验收与答辩:怎么证明这套大数据实验真的跑通了

6.1 三层验收清单:环境层、集群层、业务层

实验报告不是写完就完事了,需要拿出一套能让导师信服的验收标准。我把验收拆成三层,每一层都有明确的检查项,用于答辩现场快速演示。

验收层检查项验证方法通过标准
环境层四台ECS网络互通ping其他节点IP0%丢包
环境层SSH免密登录从node1依次ssh node2/node3/node4无需输入密码
环境层Java版本统一java -version四台输出一致
集群层HDFS进程完整jps检查NameNode和DataNodenode1有NameNode,node2~4有DataNode
集群层YARN资源管理yarn node -list显示4个健康节点
集群层OBS互联hdfs dfs -ls obs://桶名能列出桶内文件
业务层MapReduce计算运行WordCount100%完成且结果正确
业务层交互式查询Spark SQL执行select返回查询结果

答辩时建议按这个顺序逐项演示,先证明基础环境没问题,再证明集群本身在正常工作,最后用业务作业证明整个链路是通的。这样即使导师中途打断提问,你也已经完成了核心验证。

6.2 答辩技巧:把"操作过程"讲成"设计决策"

很多同学答辩时容易把实验过程描述成"先装这个、再装那个、然后跑通了",这样讲信息密度太低。更好的方式是给每个关键步骤赋予一个"为什么"——为什么选择四节点而不是三节点?因为NameNode和ResourceManager需要独立节点,三个数据节点才能满足HDFS副本数为3的默认策略。为什么关闭防火墙而不是配置放行端口?因为实验环境追求的是快速验证,安全组已经在云平台层面做了隔离,放行端口更适合生产环境。为什么Spark跑YARN模式而不是standalone模式?因为生产环境强调资源利用率,让Spark和MapReduce共享YARN的资源池是最优解。

把这些设计理由内化到答辩回答里,给人的感觉是"这个实验你不仅做了,还想明白了"。导师最怕听到的答案是"都是照着文档敲的,没想过为什么"。而这份实验报告的每个环节背后都有明确的设计逻辑,把逻辑提炼出来逐一对应即可。

汇报材料里还可以放一张集群进程截图和WordCount运行结果截图,作为最直观的证据。我的习惯是每完成一个阶段就保存命令行输出,用文本文件归档,答辩前整理成附录。这样就算现场网络断了、集群起不来了,你仍然有当时的运行证据可以展示。从那以后我每次做环境类实验都强制走一遍"配置-验证-截图-归档"的流程,这四个环节一个都不落。希望帮到你。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/22 1:02:14

基于STM32F446ZE与PJ85718DM的HVAC多点温度监测方案详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/22 1:01:44

HVAC温度监测的硬件信任链:PJ85718DM与PIC32MZ协同设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/21 23:59:52

压缩空气储能与热网热惯性联合优化调度:热电联产系统建模与求解

前几年做模拟项目X时&#xff0c;我遇到一个很典型的调度困境&#xff1a;系统里有一台热电联产机组和一片集中供热管网&#xff0c;冬季夜间电负荷低、热负荷却很高&#xff0c;机组被“以热定电”的约束绑得死死的&#xff0c;电力调峰完全腾不出手&#xff0c;只能眼睁睁看着…

作者头像 李华
网站建设 2026/10/21 23:59:46

热敏打印机原理与打印头维护:从发热电阻到工程实践

1. 热敏打印的核心技术原理1.1 从一块发热电阻说起热敏打印机这个名字&#xff0c;很多人第一反应是“超市小票机”“快递面单机”&#xff0c;但真要问它内部怎么工作的&#xff0c;能讲清楚的人不多。我第一次拆开一台热敏打印机的时候&#xff0c;也被里面简单的结构惊到了—…

作者头像 李华
网站建设 2026/10/21 23:59:16

从rea项目看React架构与实时数据处理:命名、文档与工程实践

1. 从“rea”这个标题说起&#xff1a;一个被极简命名掩盖的完整项目第一次看到“rea”这个标题&#xff0c;我脑子里蹦出来的第一个念头是&#xff1a;这大概率又是一个被随手命名的项目。做技术的人都有这个毛病&#xff0c;项目文件夹建好的那一刻&#xff0c;脑子里想的是“…

作者头像 李华
网站建设 2026/10/21 23:55:03

Skills 拆解:从技能识别到产品化的可复用实操框架

1. 从“skills”这个词说起&#xff1a;它到底指什么“skills”这个词最近又被推到了讨论中心&#xff0c;但很多人第一次看到它时&#xff0c;脑子里冒出来的问号是&#xff1a;这到底是一个工具、一个概念&#xff0c;还是一类能力的统称&#xff1f;我在不同场合被问过不下几…

作者头像 李华