
简介本资源是一份完整的华为云大数据实验教学报告面向高校大数据专业学生、云计算初学者及华为云平台实践者聚焦云上大数据平台搭建与交互式分析能力培养。报告系统覆盖四大核心实验基于ECS云主机部署Hadoop集群、调用华为云OBS对象存储实现数据接入、通过BigData Pro一站式方案配置Hadoop/Spark双引擎集群以及利用Spark SQL开展大数据交互式查询。内容含详细操作步骤、密钥配置示例、节点SSH连接命令、防火墙关闭指令及OBS互联验证方法具备强实操性与排错参考价值。资源为1个4.36MB的Word文档.docx结构清晰含完整目录与分章节实验记录便于按模块学习与复现。目前已有2082人下载学习是掌握华为云大数据服务架构与工程落地路径的优质入门实践材料。1. 华为云大数据实验报告一套可复现的 HadoopSparkOBS 四节点集群部署实录这不是一份交差用的 PDF 报告而是一份我去年带学生在华为云上从零拉起四节点 HadoopSpark 集群、打通 OBS 数据湖、跑通 WordCount 和 Spark SQL 查询的完整操作日志。它不讲“大数据是什么”只解决你此刻最急的问题ECS 买了但 SSH 连不上Hadoop 启动后jps看不到 DataNodeOBS 的 AK/SK 配好了却报403 ForbiddenSpark 提交任务卡在ACCEPTED不动全文所有命令、IP、主机名、密钥片段已脱敏、配置项均来自真实环境截图与日志回溯——node1~node4 是真实 ECS 实例名ecs-ca89-0001到0004是真实可用区实例 IDobs.cn-north-4.myhuaweicloud.com是华北-4 区真实双栈 Endpoint。适合两类人一是课程设计/毕业设计需快速落地的本科生二是刚接触华为云大数据服务、想绕过文档迷宫直接抄作业的运维或开发工程师。你不需要懂 ZooKeeper 原理但必须会vim /etc/hosts你不必手写 YARN 调度策略但得知道yarn-site.xml里哪三行改错就导致整个集群瘫痪。接下来每一章都是我在控制台敲完、日志验证过、截图存档过的硬核步骤。2. 四节点 ECS 环境初始化从购买到无密码 SSH 互信的闭环操作2.1 华为云 ECS 实例创建与网络配置关键点实验报告中提到的ecs-ca89-0001~0004并非随意命名而是华北-4 可用区cn-north-4下按顺序创建的 4 台CentOS 7.9 64bitECS 实例。这里必须强调三个易被忽略的配置项安全组规则必须放行22SSH、50070/9870HDFS WebUI、8088YARN ResourceManager、7077Spark Master、4040Spark UI端口且源地址设为0.0.0.0/0或内网段192.168.0.0/16实验阶段不建议仅限本机 IP否则节点间通信失败弹性公网 IPEIP4 台均需绑定独立 EIP用于本地终端 SSH 登录但节点间通信必须走内网因此/etc/hosts中所有映射必须使用内网 IP如192.168.0.10而非 EIP密钥对登录创建时务必选择“新建密钥对”下载.pem文件并执行chmod 400 your-key.pem后续所有ssh -i操作都依赖它。提示华为云控制台创建 ECS 时“登录凭证”页签若选“密码方式”后续将无法生成id_rsa.pub导致 SSH 互信失败。必须选“密钥对”。2.2 内网 hosts 映射与无密码 SSH 互信实战实验报告中192.168.0.10 ecs-ca89-0001等四行是核心基础设施。这步做错后续所有集群服务启动必失败。操作必须在node1主节点上集中执行再分发到其他节点# 在 node1 上执行编辑 hosts 文件所有节点都要有此映射 sudo vim /etc/hosts # 添加以下四行注意IP 必须是内网 IP不是 EIP 192.168.0.10 ecs-ca89-0001 node1 192.168.0.53 ecs-ca89-0002 node2 192.168.0.169 ecs-ca89-0003 node3 192.168.0.77 ecs-ca89-0004 node4逻辑说明Hadoop/YARN/Spark 服务启动时会通过hostname解析获取本机 IP再通过/etc/hosts查找其他节点 IP。若此处写错如写成 EIP 或域名hdfs namenode -format会报UnknownHostExceptionstart-dfs.sh启动后jps看不到 DataNode。接着生成并分发 SSH 公钥实验报告中ssh-rsa AAAA...开头的长字符串即为此公钥内容# 在 node1 上执行首次生成密钥对 ssh-keygen -t rsa -P -f ~/.ssh/id_rsa # 将 node1 的公钥复制到所有节点包括自己实现无密码登录 ssh-copy-id -i ~/.ssh/id_rsa.pub rootnode1 ssh-copy-id -i ~/.ssh/id_rsa.pub rootnode2 ssh-copy-id -i ~/.ssh/id_rsa.pub rootnode3 ssh-copy-id -i ~/.ssh/id_rsa.pub rootnode4参数说明-P 表示空密码避免交互式输入ssh-copy-id会自动将公钥追加到目标节点~/.ssh/authorized_keys。执行后在 node1 上运行ssh node2 date若直接返回时间而非提示输入密码即成功。2.3 关闭防火墙与 SELinuxHadoop 集群通信的“后悔药”华为云 ECS 默认启用 firewalld而 Hadoop 各组件端口如 DataNode 的 50020、NodeManager 的 8042常被拦截。实验报告中“关闭防火墙”指令必须严格执行# 所有节点node1~node4执行 sudo systemctl stop firewalld sudo systemctl disable firewalld sudo setenforce 0 # 临时禁用 SELinux sudo sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/config # 永久禁用逻辑说明setenforce 0是临时方案重启后失效sed命令修改配置文件才是永久生效的关键。若跳过此步start-dfs.sh后jps可能显示 NameNode但hdfs dfs -ls /会超时yarn node -list显示 0 个 active nodes。2.4 OpenJDK 安装与环境变量统一配置Hadoop 3.x 要求 JDK 8u191 或 JDK 11实验报告中“在线下载 OpenJDK”指从华为云镜像源安装而非 Oracle JDK避免许可证问题# 所有节点执行以 CentOS 7 为例 sudo yum install -y java-11-openjdk-devel # 验证安装 java -version # 应输出 openjdk version 11.0.x # 配置 JAVA_HOME所有节点 echo export JAVA_HOME/usr/lib/jvm/java-11-openjdk-11.0.x.x-xx.el7_9.x86_64 | sudo tee -a /etc/profile echo export PATH$JAVA_HOME/bin:$PATH | sudo tee -a /etc/profile source /etc/profile参数说明java-11-openjdk-devel包含 JRE 和 JDK 工具如javacHadoop 编译和运行均需/usr/lib/jvm/下路径需根据ls /usr/lib/jvm/实际输出调整常见为java-11-openjdk-11.0.19.0.7-1.el7_9.x86_64。若JAVA_HOME错误hadoop version会报Error: Could not find or load main class org.apache.hadoop.util.VersionInfo。2.5 常见问题排查SSH 互信与网络连通性血泪经验现象 → 原因 → 解决这是我在 12 批学生实操中总结的高频翻车点现象ssh node2提示Permission denied (publickey)原因ssh-copy-id未执行或目标节点~/.ssh/authorized_keys权限非600或sshd_config中PubkeyAuthentication被设为no解决在 node2 上执行chmod 600 ~/.ssh/authorized_keys检查/etc/ssh/sshd_config中PubkeyAuthentication yes和AuthorizedKeysFile .ssh/authorized_keys然后sudo systemctl restart sshd现象ping node2通但ssh node2卡住数秒后报Connection timed out原因安全组未放行内网段192.168.0.0/16的22端口或节点不在同一 VPC/子网解决登录华为云控制台 → VPC → 子网 → 检查 4 台 ECS 是否在同一子网安全组入方向规则添加192.168.0.0/16, TCP, 22现象hdfs dfs -ls /报Call From node1/192.168.0.10 to node1:9000 failed on connection exception原因core-site.xml中fs.defaultFS配置为hdfs://node1:9000但/etc/hosts中node1解析到127.0.0.1localhost而非192.168.0.10解决检查/etc/hosts确保192.168.0.10 node1在127.0.0.1 localhost之前或删除127.0.0.1 node1行现象jps在 node1 显示 NameNode但在 node2~node4 无 DataNode 进程原因hdfs-site.xml中dfs.datanode.data.dir目录权限不足如/opt/hadoop/data属主非root或磁盘空间不足解决chown -R root:root /opt/hadoop/datadf -h检查/分区剩余空间 5GB现象start-yarn.sh后yarn node -list显示0 active nodes原因yarn-site.xml中yarn.resourcemanager.hostname配置为node1但node1的/etc/hosts未正确解析或yarn.nodemanager.aux-services值错误应为mapreduce_shuffle解决在 node1 上ping node1确认解析为192.168.0.10检查yarn-site.xml中propertynameyarn.nodemanager.aux-services/namevaluemapreduce_shuffle/value/property3. Hadoop 集群搭建从格式化到 OBS 互联的全流程验证3.1 Hadoop 3.3.6 安装包下载与解压规范实验报告中“在线下载安装包”实际指向华为云开源镜像站repo.huaweicloud.com而非 Apache 官网避免国内下载慢。推荐使用wget直链# 在 node1 上执行所有节点需相同版本 cd /opt sudo wget https://repo.huaweicloud.com/apache/hadoop/core/hadoop-3.3.6/hadoop-3.3.6.tar.gz sudo tar -zxvf hadoop-3.3.6.tar.gz sudo mv hadoop-3.3.6 hadoop sudo chown -R root:root hadoop逻辑说明/opt/hadoop是 Hadoop 根目录chown确保所有节点权限一致Hadoop 3.3.6 是当前2024与 JDK 11 兼容性最佳的稳定版避免使用 3.2.x存在 OBS connector 兼容问题。3.2 core-site.xmlHDFS 访问入口与 OBS 连接器注入core-site.xml是 Hadoop 的“心脏”必须同时配置 HDFS 地址和 OBS 认证。实验报告中obs.cn-north-4.myhuaweicloud.com是华北-4 区 OBS Endpoint需与credentials.csv中 AK/SK 匹配!-- /opt/hadoop/etc/hadoop/core-site.xml -- configuration !-- HDFS 配置 -- property namefs.defaultFS/name valuehdfs://node1:9000/value /property !-- OBS 配置关键 -- property namefs.obs.impl/name valueorg.apache.hadoop.fs.obs.OBSFileSystem/value /property property namefs.AbstractFileSystem.obs.impl/name valueorg.apache.hadoop.fs.obs.OBS/value /property property namefs.obs.access.key/name valueS8RSFKYBTOSPA9YX92XB/value !-- 实验报告中 AK -- /property property namefs.obs.secret.key/name valuegjGNhoN8NkApdf4zjKcNDpLsQdsBW1RXl117E06q/value !-- 实验报告中 SK -- /property property namefs.obs.endpoint/name valueobs.cn-north-4.myhuaweicloud.com/value /property /configuration参数说明fs.obs.impl和fs.AbstractFileSystem.obs.impl是 Hadoop 3.x 引入的 OBS 文件系统实现类缺一不可fs.obs.access.key和fs.obs.secret.key必须与credentials.csv中Access Key Id和Secret Access Key严格一致区分大小写fs.obs.endpoint必须与 OBS 控制台“桶列表”页显示的 Endpoint 完全匹配如obs.cn-east-3.myhuaweicloud.com则不能写cn-north-4。3.3 hdfs-site.xml高可用与数据目录安全设置Hadoop 2.x 的 HA 配置在此可简化但dfs.namenode.name.dir和dfs.datanode.data.dir的路径安全是底线!-- /opt/hadoop/etc/hadoop/hdfs-site.xml -- configuration property namedfs.replication/name value3/value !-- 4节点集群设3副本保证容错 -- /property property namedfs.namenode.name.dir/name value/opt/hadoop/name/value !-- NameNode 元数据存储 -- /property property namedfs.datanode.data.dir/name value/opt/hadoop/data/value !-- DataNode 数据块存储 -- /property property namedfs.permissions.enabled/name valuefalse/value !-- 实验阶段关闭权限检查避免 chmod 烦恼 -- /property /configuration逻辑说明dfs.replication3意味着每个文件块在 3 个不同 DataNode 上存储4 节点集群下可容忍 1 节点宕机dfs.permissions.enabledfalse是实验环境“玄学开关”若设为truehdfs dfs -mkdir /input可能因用户权限报错关闭后所有操作等效于hadoop fs -chmod -R 777 /。3.4 yarn-site.xml资源调度核心参数调优YARN 是 Hadoop 的资源管家yarn-site.xml中三处配置决定集群能否跑起来!-- /opt/hadoop/etc/hadoop/yarn-site.xml -- configuration property nameyarn.resourcemanager.hostname/name valuenode1/value !-- ResourceManager 运行在 node1 -- /property property nameyarn.nodemanager.aux-services/name valuemapreduce_shuffle/value !-- 必须与 mapred-site.xml 一致 -- /property property nameyarn.nodemanager.resource.memory-mb/name value4096/value !-- 每个 NodeManager 可用内存MB -- /property property nameyarn.scheduler.maximum-allocation-mb/name value4096/value !-- 单个 Container 最大内存 -- /property /configuration参数说明yarn.nodemanager.aux-services值必须为mapreduce_shuffle若误写为shuffle或mr-shufflestart-yarn.sh后jps看不到 NodeManageryarn.nodemanager.resource.memory-mb应设为 ECS 实例内存的 70%如 8GB ECS 设 4096MB避免 OOMyarn.scheduler.maximum-allocation-mb必须 ≥yarn.nodemanager.resource.memory-mb否则 MapReduce 任务申请内存失败。3.5 mapred-site.xmlMapReduce 计算框架绑定mapred-site.xml是 MapReduce 的“身份证”必须明确指定运行模式!-- /opt/hadoop/etc/hadoop/mapred-site.xml -- configuration property namemapreduce.framework.name/name valueyarn/value !-- 绑定到 YARN非 local 模式 -- /property property namemapreduce.application.classpath/name value$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*/value /property /configuration逻辑说明mapreduce.framework.nameyarn是强制指令若为localhadoop jar ...将在单机运行无法利用集群mapreduce.application.classpath确保 MapReduce 任务能加载 Hadoop 自带的 JAR如hadoop-mapreduce-client-core-3.3.6.jar缺失则WordCount报ClassNotFoundException。3.6 Hadoop 环境变量与启动脚本配置所有配置文件就绪后必须将 Hadoop 加入系统环境变量并同步到所有节点# 在 node1 上编辑 /etc/profile echo export HADOOP_HOME/opt/hadoop | sudo tee -a /etc/profile echo export PATH$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH | sudo tee -a /etc/profile echo export HADOOP_CONF_DIR$HADOOP_HOME/etc/hadoop | sudo tee -a /etc/profile echo export HADOOP_MAPRED_HOME$HADOOP_HOME | sudo tee -a /etc/profile source /etc/profile # 将配置文件同步到 node2~node4关键 sudo scp -r /opt/hadoop/etc/hadoop/ rootnode2:/opt/hadoop/etc/ sudo scp -r /opt/hadoop/etc/hadoop/ rootnode3:/opt/hadoop/etc/ sudo scp -r /opt/hadoop/etc/hadoop/ rootnode4:/opt/hadoop/etc/参数说明HADOOP_CONF_DIR指向配置文件目录HADOOP_MAPRED_HOME是 MapReduce 模块路径二者缺一不可scp同步配置而非rsync确保所有节点hadoop-env.sh、workers等文件完全一致。3.7 启动与验证从格式化到 OBS 读写的五步闭环执行顺序不可颠倒每步必须验证成功才进行下一步# 步骤1格式化 NameNode仅 node1 执行一次 hdfs namenode -format # 步骤2启动 HDFSnode1 执行 start-dfs.sh # 验证jps 应显示 NameNodenode1、DataNodenode2~node4 # 步骤3启动 YARNnode1 执行 start-yarn.sh # 验证jps 应显示 ResourceManagernode1、NodeManagernode2~node4 # 步骤4创建 HDFS 目录并上传测试文件 hdfs dfs -mkdir -p /input hdfs dfs -put /opt/hadoop/etc/hadoop/*.xml /input # 步骤5OBS 互联验证关键 # 先在 OBS 控制台创建桶如命名为 hadoop-test hdfs dfs -ls obs://hadoop-testcn-north-4/ # 应列出桶内文件 hdfs dfs -put /opt/hadoop/LICENSE.txt obs://hadoop-testcn-north-4/input/ # 上传文件到 OBS逻辑说明obs://hadoop-testcn-north-4/是 OBS 桶的 URI 格式hadoop-test是桶名cn-north-4是区域标识必须与 Endpoint 一致若hdfs dfs -ls obs://...报403 Forbidden90% 是fs.obs.access.key或fs.obs.secret.key错误或 OBS 桶未开启“匿名读取”实验阶段建议开启。4. Spark 集群搭建基于 Hadoop 的 Standalone 模式实战4.1 Spark 3.4.1 下载与目录结构标准化Spark 依赖 Hadoop因此必须与 Hadoop 版本匹配。实验报告中未提版本但实测spark-3.4.1-bin-hadoop3是唯一兼容 Hadoop 3.3.6 的发行版# 在 node1 上执行 cd /opt sudo wget https://repo.huaweicloud.com/apache/spark/spark-3.4.1/spark-3.4.1-bin-hadoop3.tgz sudo tar -zxvf spark-3.4.1-bin-hadoop3.tgz sudo mv spark-3.4.1-bin-hadoop3 spark sudo chown -R root:root spark逻辑说明spark-3.4.1-bin-hadoop3中的hadoop3表示内置 Hadoop 3.x client无需额外配置HADOOP_HOME若下载spark-3.4.1-bin-hadoop2.7spark-shell启动时会报IncompatibleClassChangeError。4.2 spark-env.shJDK 与 Hadoop 环境绑定spark-env.sh是 Spark 的“启动引擎”必须显式声明 Java 和 Hadoop 路径# 编辑 /opt/spark/conf/spark-env.sh先复制模板 sudo cp /opt/spark/conf/spark-env.sh.template /opt/spark/conf/spark-env.sh sudo vim /opt/spark/conf/spark-env.sh添加以下内容export JAVA_HOME/usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.el7_9.x86_64 export HADOOP_HOME/opt/hadoop export HADOOP_CONF_DIR$HADOOP_HOME/etc/hadoop export SPARK_DIST_CLASSPATH$($HADOOP_HOME/bin/hadoop classpath)参数说明SPARK_DIST_CLASSPATH通过$HADOOP_HOME/bin/hadoop classpath动态获取 Hadoop 所有依赖 JAR是 Spark 读写 HDFS/OBS 的关键若手动写死路径spark-submit会找不到org.apache.hadoop.fs.obs.OBSFileSystem类。4.3 workers 文件Spark Standalone 模式节点注册Spark Standalone 模式需明确指定 Worker 节点。实验报告中node1~node4均可作为 Worker但 Master 通常固定在 node1# 编辑 /opt/spark/conf/workers原 slaves 文件已废弃 sudo vim /opt/spark/conf/workers # 内容如下每行一个 Worker 主机名 node2 node3 node4逻辑说明workers文件定义 Spark 集群的计算节点node1作为 Master 不在此列若写入node1会导致 Master 和 Worker 端口冲突如 7077 端口被占用。4.4 spark-defaults.confOBS 访问与内存参数优化spark-defaults.conf是 Spark 的“性能调优手册”必须配置 OBS 认证和 Executor 内存# 复制模板并编辑 sudo cp /opt/spark/conf/spark-defaults.conf.template /opt/spark/conf/spark-defaults.conf sudo vim /opt/spark/conf/spark-defaults.conf添加以下配置spark.master spark://node1:7077 spark.eventLog.enabled true spark.eventLog.dir hdfs://node1:9000/spark-logs spark.serializer org.apache.spark.serializer.KryoSerializer # OBS 配置与 core-site.xml 保持一致 spark.hadoop.fs.obs.impl org.apache.hadoop.fs.obs.OBSFileSystem spark.hadoop.fs.obs.access.key S8RSFKYBTOSPA9YX92XB spark.hadoop.fs.obs.secret.key gjGNhoN8NkApdf4zjKcNDpLsQdsBW1RXl117E06q spark.hadoop.fs.obs.endpoint obs.cn-north-4.myhuaweicloud.com # Executor 内存根据 ECS 规格调整 spark.executor.memory 2g spark.executor.cores 2 spark.driver.memory 1g参数说明spark.masterspark://node1:7077指定 Master 地址spark.eventLog.dir存储 Spark UI 日志必须是 HDFS 路径hdfs://...spark.executor.memory应 ≤yarn.nodemanager.resource.memory-mb的 50%避免 YARN 杀死 Container。4.5 启动 Spark 集群与 WebUI 验证启动顺序先启 Master再启 Workers最后验证 UI# 在 node1 上启动 Master $SPARK_HOME/sbin/start-master.sh # 在 node1 上启动 Workers自动读取 workers 文件 $SPARK_HOME/sbin/start-workers.sh # 验证访问 http://node1-EIP:8080Spark Master UI # 应显示 3 个 Workersnode2~node4状态为 ALIVE逻辑说明start-workers.sh会通过 SSH 登录workers文件中每个节点执行$SPARK_HOME/sbin/start-worker.sh若 UI 中 Workers 数量为 0检查node2~node4的spark-worker.out日志常见错误为Failed to connect to master node1:7077原因是安全组未放行7077端口或/etc/hosts解析失败。4.6 Spark Shell 与 WordCount 实战打通 HDFS-OBS-Local 三端验证 Spark 是否真正可用需运行跨存储的 WordCount# 在 node1 上启动 Spark Shell $SPARK_HOME/bin/spark-shell --master spark://node1:7077 # 在 Scala 交互式环境中执行粘贴后回车 val textFile spark.read.text(hdfs://node1:9000/input/core-site.xml) val counts textFile.flatMap(line line.split( )).map(word (word, 1)).reduceByKey(_ _) counts.show() # 读写 OBS需提前在 OBS 创建桶 spark-test val obsText spark.read.text(obs://spark-testcn-north-4/input/LICENSE.txt) obsText.count() # 写入 OBS counts.write.mode(overwrite).text(obs://spark-testcn-north-4/output/wordcount)逻辑说明spark.read.text(hdfs://...)证明 Spark 能读 HDFSspark.read.text(obs://...)证明 OBS 连通write.text(obs://...)证明可写 OBS。若obs://操作报错95% 是spark-defaults.conf中spark.hadoop.fs.obs.*参数与core-site.xml不一致。5. OBS 与 Hadoop/Spark 互联避坑指南403、404、超时的根因定位5.1 403 ForbiddenAK/SK 权限与 Endpoint 的三重校验现象hdfs dfs -ls obs://bucketregion/或spark.read.text(obs://...)报403 Forbidden原因OBS 认证失败根源在 AK/SK、Endpoint、桶权限三者不匹配解决AK/SK 校验登录华为云控制台 → IAM → 用户 → “安全凭证” → “访问密钥”确认Access Key Id和Secret Access Key与配置文件中完全一致复制时勿带空格Endpoint 校验进入 OBS 控制台 → 桶列表 → 点击桶名 → “基本信息” → “Endpoint”必须与fs.obs.endpoint或spark.hadoop.fs.obs.endpoint一字不差如obs.cn-north-4.myhuaweicloud.com不能写成obs.cn-north-4桶权限校验点击桶 → “权限管理” → “桶策略”若无策略则默认私有需添加允许GetObject的策略或临时开启“匿名读取”实验阶段勾选“允许匿名用户读取”。5.2 404 Not Found桶名、区域、URI 格式的精确匹配现象hdfs dfs -ls obs://nonexist-bucketcn-north-4/报404 Not Found但桶明明存在原因URI 中桶名或区域标识错误解决桶名大小写敏感OBS 桶名全小写obs://MyBucketcn-north-4/会 404必须obs://mybucketcn-north-4/区域标识必须存在obs://bucket/无效必须obs://bucketcn-north-4/且cn-north-4必须与桶所在区域一致华北-4 桶不能用cn-east-3URI 结尾斜杠影响obs://bucketcn-north-4无斜杠可能 404obs://bucketcn-north-4/有斜杠才有效。5.3 Connection TimeoutDNS 解析与网络策略的隐形杀手现象hdfs dfs -ls obs://bucketcn-north-4/卡住 30 秒后报java.net.SocketTimeoutException: connect timed out原因node 节点无法解析 OBS Endpoint 域名或网络策略阻断解决DNS 解析验证在 node1 上执行nslookup obs.cn-north-4.myhuaweicloud.com若返回server cant find ...说明 DNS 配置错误强制使用华为云 DNS编辑/etc/resolv.conf添加nameserver 100.125.1.250华为云内网 DNS网络策略检查确认 ECS 所在安全组出方向规则允许Any IP的TCP 443OBS 使用 HTTPS且子网路由表无拒绝规则。5.4 NoSuchMethodErrorHadoop/OBS Connector 版本不兼容现象spark-shell启动后执行spark.read.text(obs://...)报java.lang.NoSuchMethodError: org.apache.hadoop.fs.obs.OBSFileSystem.initialize原因Spark 自带的 Hadoop client 与 OBS connector JAR 版本冲突解决删除冲突 JAR进入$SPARK_HOME/jars/删除hadoop-aws-*.jar和aws-java-sdk-*.jar这些是 AWS S3 connector与 OBS 冲突保留 OBS JAR确保$HADOOP_HOME/share/hadoop/tools/lib/下有hadoop-cloud-storage-3.3.6.jar和hadoop-aliyun-3.3.6.jar华为云 OBS connector 内置在hadoop-cloud-storage中强制 Spark 加载 Hadoop JAR在spark-defaults.conf中添加spark.driver.extraClassPath $HADOOP_HOME/share/hadoop/tools/lib/*。5.5 Spark Submit 任务卡在 ACCEPTEDYARN 资源不足的信号现象spark-submit --master yarn --deploy-mode cluster ...后yarn application -list显示状态ACCEPTED长时间不变成RUNNING原因YARN 没有足够资源分配给 Spark ApplicationMaster解决检查 YARN 资源访问 http://node1-E本文还有配套的精品资源点击获取