当前位置: 首页 > news >正文

大数据学习(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 类似于工人,执行具体的任务。


5. Flink 运行时角色

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

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

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


总结对比

组件核心运行时角色
HDFSNameNode(元数据管理)、DataNode(数据存储)
HiveHiveServer2(接口)、Driver(查询解析)、Executor(任务执行)
SparkDriver Program(任务提交)、Executor(任务执行)、Cluster Manager(资源管理)
MapReduceJobTracker(作业管理)、TaskTracker(任务执行)、Map/Reduce Task(数据处理)
FlinkJobManager(作业管理)、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 的元数据定位底层存储并执行查询。
数据治理提供文件级别的元数据,适合文件管理。提供表级别的元数据,适合数据仓库管理和数据分析。

相关文章:

  • Spring Cloud Gateway + OAuth2 + JWT 单点登录(SSO)实现方案
  • Python 实现一个带进度条的 URL 批量下载工具(含 GUI 界面)
  • SKE 与 SM2、SM3、SM4 的关系 ,SPDM协议的详细解析
  • 伊吖学C笔记(6、数、求和、排列)
  • 亚远景-ASPICE认证流程全解析:从准备到通过的关键步骤
  • 从数学到代码:一文详解埃拉托色尼筛法(埃式筛)
  • 远程管理命令:网卡和IP地址的概念
  • SLAM文献之-Degeneracy-Aware Factors with Applications to Underwater SLAM
  • 解决office各种疑难杂症
  • Vue3+TypeScript实现状态模式
  • 力扣100- 环形链表
  • oracle 23ai对象注释新特性ANNOTATIONS
  • HALCON第六讲->测量和检测
  • 图书管理系统的功能与性能测试
  • COHERENT Chameleon™Ultra、Vision和Vision-S激光系统操作员手侧
  • 【hadoop】实时计算词频案例
  • [原创]X86C++反汇编03.除法的优化
  • Linux启动流程和内核管理自我总结
  • 在线机考|2025年华为暑期实习春招秋招编程题(最新)——第2题_网络整改
  • Mysql可以做分布式锁吗?Mysql分布式锁的应用
  • 创业网站开发/站长之家seo工具包
  • 红河县网站建设/sem外包
  • 网站美工做图/企业网站网页设计
  • 网站建设合作流程/seo免费入门教程
  • 做一个网站后期维护需要多少钱/爱站网seo工具
  • 商丘行业网站建设开发公司/网络渠道有哪些