大数据学习(137)-大数据组件运行时角色

​​​​🍋🍋大数据学习🍋🍋

🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。
💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博主哦🤞


1. HDFS 运行时角色

HDFS 是分布式存储系统,其运行时角色主要围绕数据存储和管理展开:

角色 功能描述
NameNode - 管理文件系统的命名空间(元数据,如目录结构、文件权限等)。 - 协调客户端对文件的访问。 - 监控 DataNode 的健康状态。
DataNode - 存储实际的数据块(Block)。 - 执行数据块的读写操作。 - 定期向 NameNode 汇报心跳和块状态。
Secondary NameNode - 辅助 NameNode,定期合并 NameNode 的编辑日志(EditLog)和镜像文件(FsImage),防止日志过大。

类比:NameNode 类似于图书馆的目录系统,记录所有书籍的位置;DataNode 类似于书架,存放实际的书籍。


2. Hive 运行时角色

Hive 是数据仓库工具,其运行时角色主要围绕 SQL 查询的执行展开:

角色 功能描述
HiveServer2 - 提供 JDBC/ODBC 接口,允许客户端(如 Beeline、JDBC 程序)提交 SQL 查询。
Driver - 解析 SQL 查询,生成执行计划(如 MapReduce、Spark 或 Tez 任务)。
Compiler - 将 SQL 查询转换为逻辑执行计划,再优化为物理执行计划。
Metastore - 存储元数据(如表结构、分区信息、列信息等),通常使用关系型数据库(如 MySQL)存储。
Executor - 执行编译后的物理计划,调用底层计算引擎(如 MapReduce、Spark)处理数据。

类比:Hive 类似于一个翻译官,将 SQL 查询翻译为底层计算引擎能理解的任务。


3. Spark 运行时角色

Spark 是通用分布式计算引擎,其运行时角色主要围绕分布式计算展开:

角色 功能描述
Driver Program - 用户编写的 Spark 应用程序的主程序,负责提交任务和协调执行。
Cluster Manager - 管理集群资源(如 YARN、Mesos、Kubernetes 或 Spark 自带的 Standalone 模式)。
Executor - 在 Worker 节点上运行,执行具体的任务(Task),并缓存数据到内存或磁盘。
Worker Node - 运行 Executor 的节点,负责实际的数据处理。
Task - Executor 中执行的最小单元,处理一个数据分区。

类比:Driver Program 类似于项目经理,分配任务;Executor 类似于工人,执行具体的任务。


4. MapReduce 运行时角色

MapReduce 是分布式计算框架,其运行时角色主要围绕 Map 和 Reduce 阶段展开:

角色 功能描述
JobTracker - 管理 MapReduce 作业的生命周期,分配任务给 TaskTracker。
TaskTracker - 运行在节点上,执行具体的 Map 或 Reduce 任务,并向 JobTracker 汇报状态。
Map Task - 处理输入数据的分片,生成键值对(Key-Value Pairs)。
Reduce Task - 对 Map Task 的输出进行聚合,生成最终结果。
Shuffle/Sort Phase - 在 Map 和 Reduce 之间进行数据传输和排序。

类比:JobTracker 类似于工厂经理,分配任务;TaskTracker 类似于工人,执行具体的任务。


Flink 是流处理和批处理统一框架,其运行时角色主要围绕实时数据处理展开:

角色 功能描述
JobManager - 管理作业的生命周期,协调 TaskManager 的资源分配和任务调度。
TaskManager - 运行具体的任务(Task),处理数据流。
Task - 执行用户定义的操作(如 Map、Filter、Aggregate 等)。
Source - 从外部数据源(如 Kafka、文件系统)读取数据流。
Sink - 将处理结果写入外部存储系统(如 HDFS、数据库)。
Checkpoint Coordinator - 管理检查点(Checkpoint),确保流处理的容错性。

类比:JobManager 类似于交通指挥中心,协调任务;TaskManager 类似于车辆,执行具体的运输任务。


总结对比

组件 核心运行时角色
HDFS NameNode(元数据管理)、DataNode(数据存储)
Hive HiveServer2(接口)、Driver(查询解析)、Executor(任务执行)
Spark Driver Program(任务提交)、Executor(任务执行)、Cluster Manager(资源管理)
MapReduce JobTracker(作业管理)、TaskTracker(任务执行)、Map/Reduce Task(数据处理)
Flink JobManager(作业管理)、TaskManager(任务执行)、Source/Sink(数据流处理)

注意:

HDFS 中的 NameNode 元数据管理和 Hive 中的 Metastore 元数据在功能上虽然都涉及"元数据",但两者的管理对象、作用范围、存储内容和使用场景存在显著差异。以下是两者的详细对比:


1. 元数据内容对比

特性 HDFS NameNode 元数据 Hive Metastore 元数据
管理对象 文件系统的元数据(如文件路径、权限、块信息等)。 数据库表的元数据(如表结构、分区信息、列信息、存储格式等)。
存储内容 文件名、目录结构、文件权限、副本数、数据块位置等。 表名、列名、数据类型、分区键、存储格式(如 ORC、Parquet)、表注释等。
作用范围 仅管理 HDFS 上的文件和目录。 管理 Hive 表与底层存储(如 HDFS)之间的映射关系。
依赖关系 NameNode 是 HDFS 的核心组件,没有它 HDFS 无法工作。 Metastore 是 Hive 的组件,Hive 可以独立运行(如使用本地模式),但通常依赖 Metastore。

类比

  • NameNode 的元数据类似于图书馆的目录系统,记录书籍的位置和分类。
  • Hive Metastore 的元数据类似于书籍的详细描述(如作者、出版社、ISBN 等),帮助用户理解数据内容。

2. 存储实现对比

特性 HDFS NameNode 元数据 Hive Metastore 元数据
存储方式 内存中维护,定期持久化到磁盘(FsImage 和 EditLog)。 通常存储在关系型数据库中(如 MySQL、PostgreSQL),Hive 本身不直接存储元数据。
高可用性 NameNode 支持高可用(HA)配置,通过 Active/Standby NameNode 实现。 Metastore 可以通过数据库的高可用机制(如主从复制)实现高可用。
扩展性 NameNode 的元数据存储在内存中,受限于单节点内存大小(可通过 Federation 扩展)。 Metastore 的元数据存储在外部数据库中,扩展性取决于数据库的能力。

类比

  • NameNode 的元数据存储类似于图书馆的中央目录系统,需要快速访问。
  • Hive Metastore 的元数据存储类似于图书馆的在线数据库,可以支持复杂的查询和管理。

3. 使用场景对比

场景 HDFS NameNode 元数据 Hive Metastore 元数据
文件操作 创建、删除、重命名文件或目录,设置权限等。 创建、删除、修改 Hive 表,查询表结构等。
数据查询 通过 HDFS API 访问文件内容,但无法直接通过元数据查询文件内容。 通过 HiveQL 查询表数据,Hive 会根据 Metastore 的元数据定位底层存储并执行查询。
数据治理 提供文件级别的元数据,适合文件管理。 提供表级别的元数据,适合数据仓库管理和数据分析。
相关推荐
nenchoumi31193 小时前
UE5 学习系列(五)导入贴图资产
学习·游戏·ue5·机器人
2301_793069823 小时前
【术语解释】网络安全((SAST, DAST, SCA, IAST),Hadoop, Spark, Hive 的关系
hive·hadoop·网络安全·spark
潘小磊3 小时前
高频面试之10 Spark Core & SQL
sql·面试·spark
bug总结3 小时前
记录下three.js学习过程中不理解问题----材质(material)⑤
学习·材质
Y3174293 小时前
Python Day50 学习(仍为日志Day19的内容复习)
python·学习·机器学习
ThreeYear_s10 小时前
基于FPGA的PID算法学习———实现P比例控制算法
学习·fpga开发
恰薯条的屑海鸥10 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十一期-目录遍历模块)
学习·安全·web安全·渗透测试·网络安全学习
nenchoumi311912 小时前
Swift 6 学习笔记(二)The Basics
笔记·学习·swift
凡人的AI工具箱13 小时前
PyTorch深度学习框架60天进阶学习计划-第57天:因果推理模型(二)- 高级算法与深度学习融合
人工智能·pytorch·深度学习·学习·mcp·a2a
仟濹13 小时前
「pandas 与 numpy」数据分析与处理全流程【数据分析全栈攻略:爬虫+处理+可视化+报告】
大数据·python·数据分析·numpy·pandas