Skip to content

阿里云 EMR 大数据集群创建后完整操作指南 ​

本指南覆盖 EMR 集群创建完成后的状态验证、环境登录、组件测试、UI 配置、问题排查、基础运维、资源释放全流程,每个环节兼顾技术原理与实操命令,与 EMR-5.21.0(Hadoop 3.2.1 + Spark 3.5.3 + Hive 3.1.3)版本完全匹配。


一、集群状态确认与信息获取 ​

1.1 集群运行状态确认 ​

集群提交创建后,等待 10~15 分钟,当控制台集群列表中状态变为**「运行中」**,代表所有核心服务已启动完成。

  • 进入集群详情页,在「集群服务」标签页可查看所有组件的运行状态,绿色对勾代表服务正常。
  • 本教程标配组件:HDFS、YARN、HIVE、SPARK3、ZooKeeper,全部显示绿色即为正常。

1.2 核心信息获取 ​

进入「节点管理」标签页,展开 Master 节点组,记录以下关键信息,后续所有操作都会用到:

  1. Master 主节点公网 IP:用于 SSH 登录、Web UI 访问
  2. 节点规格与配置:确认 CPU、内存、存储与购买配置一致
  3. 可用区与网络信息:确认 VPC、交换机绑定正常

1.3 节点角色理论说明 ​

EMR 标准集群分为两类节点,各司其职:

节点类型核心进程作用
Master 主节点NameNode、ResourceManager、Hive MetaStore、Spark HistoryServer集群管理节点,负责存储元数据、资源调度、任务管理,是集群的入口
Core 核心节点DataNode、NodeManager工作节点,负责实际数据存储、计算任务执行,节点数量决定集群存储和计算能力

二、SSH 远程登录集群 ​

2.1 登录前置条件 ​

  • 网络层面:Master 节点已挂载公网 IP,安全组已开放 22 端口(SSH 默认端口),EMR 默认会开放 22 端口。
  • 凭证层面:创建集群时设置的 root 账号密码,或配置的 SSH 密钥对。
  • 工具层面:Windows 可使用 Xshell、FinalShell、PowerShell;Mac/Linux 可直接使用终端。

2.2 登录操作步骤 ​

打开终端工具,执行以下命令:

sh
# 命令格式:ssh root@你的主节点公网IP
ssh root@120.xx.xx.xx

输入创建集群时设置的 root 密码,回车即可登录。登录成功后命令提示符会变为:

sh
[root@master-1-1 ~]#

2.3 基础环境验证 ​

登录后首先执行以下命令,确认系统与基础环境:

sh
# 查看系统版本
cat /etc/centos-release

# 查看Java环境,大数据组件依赖Java运行
java -version

三、核心组件功能验证(理论+实操) ​

3.1 Hadoop 生态验证 ​

Hadoop 是整个大数据集群的底座,包含 HDFS 分布式存储和 YARN 资源调度两大核心。

3.1.1 进程验证 ​

执行 jps 命令查看所有 Java 进程,正常运行应包含以下核心进程:

jps

典型输出与对应说明:

  • NameNode:HDFS 主节点,管理文件系统元数据
  • SecondaryNameNode:HDFS 辅助节点,定期合并元数据镜像
  • DataNode:HDFS 数据节点,实际存储数据块(Core 节点上运行)
  • ResourceManager:YARN 资源管理器,统一调度集群 CPU、内存
  • NodeManager:YARN 节点管理器,管理单个节点的资源(Core 节点上运行)
  • QuorumPeerMain:ZooKeeper 进程,提供分布式协调服务

理论说明:jps 是 JDK 自带的 Java 进程查看工具,大数据生态所有组件均为 Java 开发,因此通过 jps 可以快速验证服务是否启动。

3.1.2 版本验证 ​

sh
hadoop version

EMR-5.21.0 对应输出为 Hadoop 3.2.1-emr-1.3.6,代表基于开源 Hadoop 3.2.1 定制优化。

3.1.3 HDFS 文件系统操作 ​

sh
# 查看根目录下的文件
hdfs dfs -ls /

# 创建测试目录
hdfs dfs -mkdir /test

# 上传本地文件到HDFS
echo "hello emr" > test.txt
hdfs dfs -put test.txt /test

# 查看HDFS文件内容
hdfs dfs -cat /test/test.txt

理论说明:HDFS 是分布式文件系统,数据分散存储在所有 Core 节点上,通过 NameNode 统一管理元数据,对外提供统一的文件系统视图。

image-20260906233956268

image-20260907002656441

3.2 Spark 计算引擎验证 ​

Spark 是基于内存的分布式计算引擎,比传统 MapReduce 性能高 10~100 倍,是当前大数据开发的核心技能。

3.2.1 Spark Shell 交互式验证 ​

执行以下命令启动 Spark 交互式终端:

spark-shell --master yarn --deploy-mode client

启动成功标志:

  • 出现 Spark 标志性 ASCII 图案
  • 显示版本号 version 3.5.3-emr
  • 命令提示符变为 scala>
  • 提示 Spark context Web UI available at http://xxx:4040

image-20260907002802308

基础测试:

scala
// 并行化生成一个数组,计算元素总和
val arr = sc.parallelize(Array(1,2,3,4,5))
println(arr.sum())

输入 :quit 即可退出 Spark Shell。

image-20260907002924733

3.2.2 运行模式理论说明 ​

  • --master yarn:指定使用 YARN 作为资源调度器,任务运行在集群上,而非本地
  • --deploy-mode client:客户端模式,Driver 运行在当前提交节点,适合交互式调试
  • --deploy-mode cluster:集群模式,Driver 运行在集群节点上,适合生产环境提交正式任务

3.3 Hive 数据仓库验证 ​

Hive 是基于 Hadoop 的数据仓库工具,将 SQL 语句转换为 MapReduce/Spark 任务执行,是离线数仓的核心组件。

3.3.1 Hive 启动验证 ​

执行以下命令启动 Hive 客户端:

sh
hive

启动成功后命令提示符变为 hive>。

基础测试:

sql
-- 查看所有数据库
show databases;

-- 创建测试数据库
create database test_db;

-- 使用数据库
use test_db;

-- 退出Hive
exit;

注意:Hive 遵循 SQL 语法规范,所有命令必须以分号 ; 结尾,否则会报解析错误。

image-20260907003135996

3.3.2 启动常见提示说明 ​

启动时出现的 SLF4J: Class path contains multiple SLF4J bindings 属于警告,不是错误,完全不影响使用。

  • 原理:SLF4J 是日志门面接口,本身不实现日志功能,需要绑定具体的日志实现。EMR 中 Hive 和 Hadoop 各自携带了一个 log4j 实现包,导致类路径下存在多个绑定,SLF4J 检测到后打印警告,但会自动选择一个正常工作。
  • 处理建议:学习场景直接忽略即可,无需处理。

四、Web UI 端口配置与访问 ​

4.1 安全组原理说明 ​

阿里云安全组相当于虚拟防火墙,通过入方向/出方向规则控制服务器端口的网络访问权限。默认仅开放 SSH 22 端口,大数据组件的 Web UI 端口需要手动开放。

4.2 安全组配置实操步骤 ​

  1. 进入 ECS 控制台 → 安全组 → 找到集群关联的安全组 → 配置规则
  2. 选择「入方向」→「手动添加」,依次添加以下规则:
协议端口范围授权对象对应服务
TCP9870/98700.0.0.0/0HDFS NameNode 文件管理UI
TCP8088/80880.0.0.0/0YARN ResourceManager 资源调度UI
TCP18080/180800.0.0.0/0Spark 历史任务UI

学习场景可使用 0.0.0.0/0 放行所有 IP;生产环境建议仅填写本地公网 IP,提升安全性。

  1. 保存规则,等待 1~2 分钟生效。

image-20260907003419112

image-20260907003410241

4.3 核心 UI 访问与功能 ​

使用 Master 公网 IP 访问,所有 UI 均为 HTTP 协议,不要使用 HTTPS。

UI 名称访问地址核心功能
HDFS 文件管理http://公网IP:9870浏览 HDFS 文件系统、查看节点状态、数据块信息、存储容量
YARN 资源调度http://公网IP:8088查看集群资源使用情况、所有应用任务状态、任务日志、节点资源
Spark 历史服务http://公网IP:18080查看所有历史 Spark 任务的详细执行计划、DAG 图、性能指标、日志

注意:4040 端口是 Spark 任务运行时的临时 UI,仅在 spark-shell 或 Spark 任务运行期间存在,任务结束后端口自动关闭,属于正常现象。

image-20260907003450576


五、常见问题排查 ​

5.1 Web UI 无法访问 ​

排查顺序(从高概率到低概率):

  1. 使用了内网域名:EMR 控制台显示的 master-1-1.c-xxx.emr.aliyuncs.com 是内网域名,公网无法解析,必须使用公网 IP 访问。
  2. 安全组未开放端口:确认入方向规则已添加对应端口,且授权对象正确。
  3. 协议错误:所有原生 UI 都是 HTTP,手动加 https:// 会导致访问失败。
  4. 服务未启动:SSH 登录执行 jps 确认对应进程存在,不存在则手动启动服务。
  5. 本地网络问题:关闭 VPN、代理,或切换手机热点测试;使用 telnet 公网IP 端口 测试端口连通性。

5.2 SLF4J 多绑定警告 ​

  • 性质:警告,非错误,不影响任何功能。
  • 原因:多个组件都携带了 SLF4J 的日志实现包,类路径重复。
  • 处理:学习场景直接忽略;生产环境可移除多余的 jar 包,但不建议在预装集群中修改,避免破坏兼容性。

5.3 Hive 命令解析报错 ​

  • 报错信息:ParseException line 1:0 cannot recognize input near 'exit'
  • 原因:Hive 命令必须以分号 ; 结尾,未加分号或格式错误会导致解析失败。
  • 解决:输入 exit; 或 quit;,带分号结尾。

5.4 Spark 4040 端口访问失败 ​

  • 原因:4040 是 Spark Driver 的临时 UI,仅在任务运行期间存在,退出 spark-shell 后进程终止,端口自动关闭。
  • 替代方案:访问 18080 端口的 Spark 历史服务器,可查看所有已完成任务的详情。

六、集群基础使用入门 ​

6.1 HDFS 常用操作 ​

sh
# 创建目录
hdfs dfs -mkdir /data

# 递归创建多级目录
hdfs dfs -mkdir -p /data/input

# 上传文件
hdfs dfs -put 本地文件路径 /data/input

# 下载文件到本地
hdfs dfs -get /data/input/文件 本地路径

# 删除文件
hdfs dfs -rm /data/input/文件

# 删除目录
hdfs dfs -rm -r /data

# 查看目录大小
hdfs dfs -du -h /data

6.2 Spark 基础编程示例 ​

scala
// 读取HDFS文件,统计单词数
val lines = sc.textFile("/test/test.txt")
val words = lines.flatMap(_.split(" "))
val wordCount = words.map((_, 1)).reduceByKey(_ + _)
wordCount.collect().foreach(println)

image-20260907012712301

6.3 Hive 基础 SQL 操作 ​

sql
-- 创建表
create table student(
    id int,
    name string,
    age int
) row format delimited fields terminated by ',';

-- 插入数据
insert into student values (1,'张三',20),(2,'李四',21);

-- 查询数据
select * from student where age > 20;

-- 统计数量
select count(*) from student;

七、计费管理与集群释放 ​

7.1 按量付费计费规则 ​

  • 计费粒度:按秒计费,从集群创建成功开始,到释放集群结束,精确到实际运行时长。
  • 计费范围:包含 ECS 实例、云盘、公网带宽、EMR 服务费用。
  • 停止计费条件:必须执行「释放集群」操作,仅停止服务不会停止云盘等资源的计费。

7.2 集群释放操作步骤 ​

  1. 进入 EMR 控制台 → 集群管理 → 找到对应集群
  2. 点击右侧「更多」→「释放集群」
  3. 确认释放提示,输入验证信息,确认释放
  4. 集群状态变为「已释放」代表所有资源销毁,计费终止

7.3 重要注意事项 ​

  1. 数据备份:释放集群后,HDFS 中的所有数据会永久删除,无法恢复,重要数据请提前导出到本地或阿里云 OSS。
  2. 及时释放:学习测试完成后立即释放集群,避免产生闲置费用。
  3. 配置保留:释放后集群配置无法保留,下次使用需要重新创建。

八、后续学习路径建议 ​

  1. 基础阶段:熟练 HDFS 常用命令、YARN 任务调度原理、Spark RDD 编程、Hive SQL 基础
  2. 进阶阶段:Spark SQL、Spark Streaming 流计算、Hive 数仓建模、性能优化
  3. 实战阶段:用户行为分析项目、离线数据仓库项目、日志清洗与分析
  4. 生态拓展:Flink 实时计算、HBase 分布式数据库、Sqoop 数据同步、Presto 即席查询

基于 Vite 强力驱动 | 纯静态轻量托管