Hadoop Hive 和 YARN 的关系

一句话总结:

Hive 是数仓 SQL 工具,本身不做计算;

YARN 是 Hadoop 的资源调度管理器,给 Hive 的计算任务分配服务器资源,运行 MapReduce/Tez/Spark 计算程序;

一、各自角色

1. Hive

  • Hive 是数仓工具,提供 Hive‑SQL,把我们写的 SQL 语句,编译翻译成分布式计算任务(MR / Tez / Spark)。
  • Hive 本身不做真正的数据计算,只负责:解析 SQL、生成执行计划、生成任务。
  • Hive 自己不管理 CPU、内存服务器资源。生成完任务之后,把任务提交给 YARN 去运行。

2. YARN

YARN 是 Hadoop 集群的资源调度框架。

负责整个集群机器的 CPU、内存资源管理;

接收各类应用提交的任务,分配 Container 容器,调度任务在各个节点运行,监控任务运行、失败重启。

不止 Hive 可以用 YARN,Spark、Flink、MR 程序都可以提交到 YARN 上跑。

二、完整执行流程(Hive on MapReduce 最经典)

  1. 用户写一条 Hive SQL,在 hive 客户端执行;
  2. Hive 解析、编译 SQL,生成 MapReduce 作业;
  3. Hive 客户端把这个 MR 作业提交给 YARN ResourceManager;
  4. RM 根据集群资源情况,分配 Container 容器;
  5. 在容器里面启动 Map Task、Reduce Task,读取 HDFS 上的数据做计算;
  6. 计算完成,结果写回 HDFS,Hive 拿到结果返回给客户端。

Hive 就像项目经理,写好施工方案;

YARN 是工地总管,分配工人机器资源,真正干活;

三、形象比喻

  • Hive:翻译官,把 SQL 翻译成分布式任务说明书。
  • YARN:工厂调度,分配机器内存 CPU,启动 task 真正干活。
  • HDFS:仓库,存放原始数据和计算结果。

四、常见部署模式

  1. Hive‑on‑MR:SQL 编译成 MapReduce 任务,提交 YARN 运行(老常用)
  2. Hive‑on‑Tez:编译成 Tez 任务,提交 YARN
  3. Hive‑on‑Spark:编译 Spark 任务,提交 YARN

不管底层是 MR/Tez/Spark,资源全部由 YARN 统一调度。

五、重要区分

  1. Hive 不存储数据,数据存在HDFS;
  2. Hive 不调度资源,资源交给YARN;
  3. Hive 元数据(表名、分区、字段)存在MySQL 元数据库 Metastore;

六、精简版

Hive 是 Hadoop 上的数据仓库工具,提供 Hive‑SQL。Hive 本身不执行计算,它会把 SQL 解析编译成 MapReduce、Tez 或者 Spark 任务。

YARN 是 Hadoop 的资源调度框架,负责集群 CPU、内存资源管理。

Hive 将生成的计算作业提交给 YARN,由 YARN 分配 Container 容器,调度 Map、Reduce Task 在集群节点执行计算。

Hive 负责 SQL 解析生成计划,YARN 负责资源调度和实际任务运行。

Hive 的数据存储在 HDFS,元数据存放在 MySQL。

七、高频Q&A

Q:Hive 任务卡住,一定是 Hive 本身问题吗?

A:不一定。

  • 如果任务还没提交 YARN:卡在 Hive 编译、Metastore 元数据查询;
  • 如果任务已经提交 YARN:问题基本出在 YARN 侧:资源不足、数据倾斜、HDFS 读写异常。

Q:如果 YARN 挂了,Hive 还能用吗?

A:不能执行查询计算;只能做简单 show tables 这类元数据查询;所有需要计算的 SQL 全部无法运行。

相关推荐
ha_lydms1 天前
Datetime Functions(日期时间函数)
大数据·hadoop·阿里云·spark·数据处理·dataworks·maxcompute
ha_lydms1 天前
Bitwise Functions(位运算函数)
大数据·hadoop·阿里云·spark·数据处理·dataworks·maxcompute
ha_lydms1 天前
St Functions(空间函数)
大数据·hadoop·阿里云·spark·数据处理·dataworks·maxcompute
成都蜀味缘餐饮技术培训学校1 天前
油炸串串技术培训实战指南,核心食材选购与预处理标准
数据仓库·经验分享·笔记·课程设计·微信公众平台
ha_lydms1 天前
Table Functions(表函数)
大数据·hadoop·阿里云·spark·数据处理·dataworks·maxcompute
ha_lydms1 天前
Json Functions(JSON 函数)
大数据·hadoop·spark·json·数据处理·dataworks·maxcompute
171320330计算机毕设编程1 天前
计算机毕业设计 基于Hadoop的新能源汽车发展前景分析 LW PPT
java·大数据·hadoop·python·算法·随机森林·线性回归
ha_lydms1 天前
Conditional Functions(条件函数)
大数据·hadoop·阿里云·spark·数据处理·dataworks·maxcompute
程序员大阳2 天前
副队长大数据教程(7)--Hadoop 集群角色配置逻辑详解
大数据·hadoop·分布式·集群·配置·角色·逻辑
ha_lydms2 天前
String Functions(字符串函数)
大数据·hadoop·阿里云·spark·数据处理·dataworks·maxcompute