资讯动态

华为云大数据实验环境搭建:ECS、Hadoop与Spark集群配置指南

发布时间:2026/10/27 10:43:58 来源:尧图企业网站定制
简介这份华为云大数据实验报告面向高校学生与云计算初学者围绕在华为云上部署和管理大数据平台的关键技术展开帮助读者打通从云主机到云服务、再到一站式大数据方案的实践路径。压缩包内共1个docx文档约4.36MB以图文实验记录形式呈现便于按实验章节对照操作与复盘。内容覆盖实验一云主机实现大数据ECS与OBS配置、Hadoop集群搭建、节点SSH互通与OpenJDK安装、实验二云服务实现大数据、综合实验一BigData Pro购买ECS与OBS、搭建Hadoop与Spark集群、测试与OBS互联以及综合实验四大数据交互式查询Spark SQL、Flink SQL建表与查询分析。目录结构按实验分节编排步骤与命令记录较完整适合作为课程实验参考、云平台入门练习与排错对照材料。目前已有2490人学习下载可供需要系统掌握华为云大数据实验流程的读者借鉴。1. 从一台 ECS 开始华为云大数据实验环境到底要装什么很多人第一次做华为云大数据实验翻车不是翻在 Hadoop 命令上而是翻在“环境还没列清就急着敲命令”。我见过最典型的一幕某开发者拿到实验指导书看到“node1 节点登录成功后执行命令在线下载安装包”直接在一台按需计费的 ECS 上开干结果四台机器内网 IP 对不上、hosts 没配、SSH 互信没做start-dfs.sh一跑进程起一半死一半日志里全是Connection refused。这套环境说白了就是四台 ECS 加一个 OBS 桶再叠 OpenJDK、Hadoop、Spark 三层装好了能做 wordcount 和交互式查询装不好就是一台孤零零的云主机在烧钱。这篇笔记按我实际复现的顺序写先把 ECS 和 OBS 备齐再搭 Hadoop 集群最后接 Spark 和 OBS 互联中间穿插我踩过的坑。适合刚接触华为云大数据实验、想一次跑通不想反复重装的人。2. 备齐云资源ECS 四节点与 OBS 桶的购买配置2.1 购买 ECS 时的规格与网络选择实验的底座是四台弹性云服务器指导书里对应 node1 到 node4。我一般会先想清楚三件事再点“购买”规格、镜像、网络。规格上Hadoop 的 NameNode 和 ResourceManager 都压在 node1 上内存别抠单台至少 4 核 8Gnode2 到 node4 作为 DataNode 可以同规格省得后面调参时怀疑是机器差异。镜像选通用型 Linux 即可关键是四台必须同一可用区、同一 VPC否则内网不通后面 SSH 互信和 hosts 解析全是白搭。购买时有个容易忽略的点安全组。默认安全组往往只放通 22 端口Hadoop 各组件之间要通 9000、50070、8088、7077 这些端口实验环境里我通常直接给这四台机器挂一个内部全放通的安全组只对实验网段开放别图省事对 0.0.0.0/0 全开。买完之后把四台的内网 IP 记下来指导书里给的是 192.168.0.10、192.168.0.53、192.168.0.169、192.168.0.77 这一组实际以你控制台看到的为准别照抄。# 在每台 ECS 上确认内网 IP和后面 hosts 文件必须一致 ip addr show | grep -w inet hostname这段命令的作用是核对每台机器的实际内网地址和主机名。ip addr show看网卡上的 inet 地址hostname看系统主机名两者要和后面/etc/hosts里写的完全对应。常见做法是四台都执行一遍把结果抄到一张纸上再统一写 hosts避免“以为自己是 node2 其实是 node3”这种玄学问题。2.2 创建 OBS 桶与获取 AK/SKOBS 是这套实验的存储底座Hadoop 和 Spark 都要能读写它。进入对象存储服务创建桶时区域选cn-north-4桶名全局唯一访问域名就是obs.cn-north-4.myhuaweicloud.com双栈地址是obs.dualstack.cn-north-4.myhuaweicloud.com。实验里还会用到并行文件系统创建完成后进入桶详情页把这两个域名记下来后面配fs.obs.endpoint要用。访问密钥在“我的凭证”里创建下载下来的credentials.csv里就是User Name,Access Key Id,Secret Access Key三列。指导书里出现过一组示例值形如roy_yuki,S8RSFKYBTOSPA9YX92XB,gjGNhoN8NkApdf4zjKcNDpLsQdsBW1RXl117E06q这是实验环境的一次性凭证你自己做的时候用自己生成的别把真实 AK/SK 贴进任何会提交的文档里。配置项实验取值说明区域cn-north-4桶和 ECS 尽量同区域内网访问不走公网流量OBS 访问域名obs.cn-north-4.myhuaweicloud.com配fs.obs.endpoint用双栈域名obs.dualstack.cn-north-4.myhuaweicloud.comIPv6 场景备用凭证文件credentials.csv含 User Name、AK、SK 三列提示AK/SK 一旦泄露等于把桶交出去实验做完建议在控制台禁用这对密钥别留着过年。3. 搭 Hadoop 集群从 hosts、互信到 OpenJDK 安装3.1 配置 hosts 与关闭防火墙四台机器买好之后第一件事不是装 Hadoop是让它们互相认识。在每台的/etc/hosts里追加四行映射主机名统一用 node1 到 node4别用控制台自动生成的ecs-ca89-0001这种长名字敲命令时你会感谢自己。# 四台机器都执行IP 换成你控制台里的实际内网地址 cat /etc/hosts EOF 192.168.0.10 node1 192.168.0.53 node2 192.168.0.169 node3 192.168.0.77 node4 EOF # 关闭防火墙并设为开机不启动 systemctl stop firewalld systemctl disable firewalldcat 是追加写入不会覆盖原有内容systemctl stop立即停掉 firewallddisable保证重启后不再拉起。实验环境里关防火墙是为了让 Hadoop 各端口互通生产环境当然不能这么干但实验阶段这是最省事的做法。关完用systemctl status firewalld确认状态是 inactive。3.2 配置 SSH 免密互信Hadoop 启动脚本要靠 SSH 去各节点拉进程没有免密互信start-all.sh会卡在输密码上。指导书里给了一大段ssh-rsa公钥那是各节点id_rsa.pub的内容做法是每台生成自己的密钥然后把四台的公钥汇总进同一个authorized_keys。# 每台机器执行一路回车不设 passphrase ssh-keygen -t rsa -P -f /root/.ssh/id_rsa # 查看本机公钥复制输出内容 cat /root/.ssh/id_rsa.pub-t rsa指定密钥类型-P 表示空密码-f指定路径。生成后把四台的公钥内容拼到一个文本里再分发到每台的/root/.ssh/authorized_keys权限设成 600。指导书里 node1 到 node4 的公钥形如ssh-rsa AAAAB3NzaC1yc2E... rootecs-ca89-0001你照这个格式汇总即可。# 在 node1 上验证能否免密跳到其余节点 ssh node2 ssh node3 ssh node4第一次连接会提示yes/no输入 yes 后应该直接进到对方 shell不再要密码。四台两两之间都要能跳别只测 node1 到别人反向也测一遍否则 DataNode 回连 NameNode 时照样翻车。3.3 安装 OpenJDK 与 Hadoop 安装包Hadoop 依赖 JDK实验里用的是 OpenJDK。在 node1 上下载安装包再分发到其余节点保证四台版本完全一致。# node1 执行安装 OpenJDK yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel # 确认版本 java -versionjava-1.8.0-openjdk-devel带编译工具Hadoop 某些组件编译时需要。装完java -version应输出 1.8 系列。接着下载 Hadoop 安装包指导书里是“在线下载安装包”我一般用wget拉到/opt下再解压。cd /opt wget https://archive.apache.org/dist/hadoop/common/hadoop-3.1.1/hadoop-3.1.1.tar.gz tar -zxvf hadoop-3.1.1.tar.gz mv hadoop-3.1.1 hadooptar -zxvf里 z 是 gzip 解压x 是解包v 显示过程f 指定文件。解压后目录统一成/opt/hadoop后面配环境变量少写一截路径。四台都要有同样的目录结构用scp -r /opt/hadoop node2:/opt/分发即可。3.4 配置 Hadoop 核心参数Hadoop 的配置文件集中在$HADOOP_HOME/etc/hadoop下实验里至少要改core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml四个。核心是让 NameNode 认识自己、让集群知道 OBS 的存在。!-- core-site.xml指定 HDFS 入口和 OBS 接入点 -- configuration property namefs.defaultFS/name valuehdfs://node1:9000/value /property property namefs.obs.endpoint/name valueobs.cn-north-4.myhuaweicloud.com/value /property property namefs.obs.access.key/name value你的AK/value /property property namefs.obs.secret.key/name value你的SK/value /property /configurationfs.defaultFS指向 node1 的 9000 端口这是 HDFS 的 RPC 入口fs.obs.endpoint填 OBS 访问域名AK/SK 填credentials.csv里的值。这里最容易错的是把 endpoint 写成带https://前缀实际只要域名部分。hdfs-site.xml里配副本数实验四台机器一般设 2 或 3yarn-site.xml里指定 ResourceManager 主机为 node1。注意AK/SK 写进 XML 后这个文件就别提交到任何代码仓库实验报告里也要打码。4. 接 Spark 与 OBS集群互联和交互式查询的配置4.1 Spark 集群搭建与 Hadoop 协同Spark 在这套实验里承担交互式查询的角色。装法和 Hadoop 类似下载解压到/opt/spark关键是让它找到 Hadoop 的配置。cd /opt wget https://archive.apache.org/dist/spark/spark-3.1.1/spark-3.1.1-bin-hadoop3.2.tgz tar -zxvf spark-3.1.1-bin-hadoop3.2.tgz mv spark-3.1.1-bin-hadoop3.2 spark包名里的bin-hadoop3.2表示预编译时绑定了 Hadoop 3.2 的依赖和前面的 Hadoop 3.1.1 兼容。解压后在spark-env.sh里指定HADOOP_CONF_DIR/opt/hadoop/etc/hadoopSpark 就能直接读到 OBS 的 AK/SK 配置不用重复写一遍。# 在 spark-env.sh 中追加 export HADOOP_CONF_DIR/opt/hadoop/etc/hadoop export JAVA_HOME$(dirname $(dirname $(readlink -f $(which java))))readlink -f $(which java)拿到 java 可执行文件的真实路径两次dirname退到 JDK 根目录这样不用手写版本号换 JDK 也不用改。配好后在 node1 启动 Spark 集群start-all.sh会拉起 Master 和 Worker。4.2 测试与 OBS 互联互联测试是这套实验的分水岭前面配得再顺这一步不通等于没装完。做法是在 Hadoop 或 Spark 里直接对 OBS 路径做读写。# 用 Hadoop 命令列 OBS 桶内容验证 AK/SK 和 endpoint 是否生效 hadoop fs -ls obs://你的桶名/ # 上传一个本地文件到 OBS echo hello obs /tmp/test.txt hadoop fs -put /tmp/test.txt obs://你的桶名/test/obs://是华为云 OBS 的 scheme-ls能列出桶内对象说明鉴权通过-put成功说明写权限也没问题。如果报No FileSystem for scheme: obs多半是hadoop-huaweicloud的 jar 包没放进$HADOOP_HOME/share/hadoop/common/lib指导书里“下载 jar 包”那一步就是干这个的别跳过。4.3 跑通 wordcount 与交互式查询验证集群算力的经典方式是 wordcount。准备一个文本文件传到 HDFS提交 MapReduce 任务。# 造输入数据并上传 echo big data on huawei cloud big data /tmp/input.txt hadoop fs -mkdir -p /input hadoop fs -put /tmp/input.txt /input/ # 提交 wordcount hadoop jar /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.1.jar \ wordcount /input /output # 查看结果 hadoop fs -cat /output/part-r-00000hadoop jar指定示例 jar 包后面依次是主类、输入路径、输出路径。输出目录必须不存在否则会报Output directory already exists重跑前先hadoop fs -rm -r /output。结果里能看到每个单词的计数说明 HDFS、YARN、MapReduce 三层都通了。交互式查询则用 Spark SQL 对 OBS 上的数据建表查询验证 Spark 和 OBS 的链路。5. 避坑排查这套环境最容易翻车的五个地方5.1 现象start-dfs.sh后 NameNode 没起来原因通常是core-site.xml里fs.defaultFS写的主机名和/etc/hosts对不上或者 9000 端口被占。解决是先看logs/hadoop-*-namenode-*.log搜BindException或UnknownHostException前者换端口后者改 hosts。我一般启动前先ss -tlnp | grep 9000确认端口空闲。5.2 现象SSH 免密时好时坏原因是authorized_keys权限不对或者只配了单向。/root/.ssh要 700authorized_keys要 600权限宽了 sshd 会拒绝。解决是四台统一chmod 700 /root/.ssh chmod 600 /root/.ssh/authorized_keys然后两两互跳测一遍。5.3 现象OBS 报No FileSystem for scheme: obs原因是hadoop-huaweicloud的 jar 没放到 classpath。解决是把 jar 复制到$HADOOP_HOME/share/hadoop/common/lib/四台都放重启集群。这个坑血泪经验最多因为报错信息完全不提 jar 的事。5.4 现象Spark 读 OBS 报鉴权失败原因是spark-env.sh里没指HADOOP_CONF_DIRSpark 读不到core-site.xml里的 AK/SK。解决是补上这个环境变量或者在spark-defaults.conf里显式配spark.hadoop.fs.obs.access.key。5.5 现象wordcount 卡在 reduce 阶段不动原因是 YARN 的 NodeManager 没起来或者内存不够被 kill。解决是看yarn-site.xml里 ResourceManager 地址再jps确认各节点进程内存不足就调小mapreduce.map.memory.mb。6. 装完怎么验证一套五分钟自检清单环境装完别急着交报告我习惯走一遍固定自检五分钟能省掉后面几小时的返工。第一步看进程四台分别jpsnode1 上应该有 NameNode、ResourceManager、SecondaryNameNodenode2 到 node4 上应该有 DataNode、NodeManager缺哪个就去对应日志找。第二步看 HDFS 健康hdfs dfsadmin -report能列出所有 DataNode 和容量Live datanodes 数量对不上就是有节点没连上。第三步测 OBS 双向读写hadoop fs -ls obs://桶名/和hadoop fs -put各跑一次读能列、写能传才算通。第四步跑 wordcount输出结果里单词计数正确说明计算链路完整。第五步用 Spark SQL 对 OBS 数据建表查询验证交互式查询这条线。检查项命令通过标准进程jps四台进程齐全HDFS 健康hdfs dfsadmin -reportLive datanodes 为 3OBS 读hadoop fs -ls obs://桶名/正常列出对象OBS 写hadoop fs -put 本地文件 obs://桶名/无报错计算wordcount输出计数正确交互查询Spark SQL 建表查询返回结果集这套清单我每次重装环境都强制走一遍因为大数据集群的毛病往往是“看起来起来了其实没通”进程在、端口通、但数据流不动。有一次我省了 OBS 写测试结果交报告前才发现 AK/SK 配错整段重来。从那以后我每次装完都先跑这六项再动业务数据。希望帮到你。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑