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

大数据学习(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 的元数据定位底层存储并执行查询。
数据治理提供文件级别的元数据,适合文件管理。提供表级别的元数据,适合数据仓库管理和数据分析。
http://www.xdnf.cn/news/13715.html

相关文章:

  • 【数据传输常用命令】:docker常用命令
  • AbMole推荐:Z-VAD-FMK,让凋亡/焦亡/坏死性凋亡机制研究更上一层楼
  • 一[3]、ubuntu18.04环境 利用 yolov8 训练开源列车数据集,并实现列车轨道检测
  • 遍历对象属性,for...in和Object.keys到底用哪个?
  • 「Unity3D」使用C#调用Android的震动功能,有三种方式
  • C++之容器适配器介绍 以及 STL--stack queue deque
  • 【氮化镓】GaN HEMT器件中Ec-0.9eV缺陷位置识别
  • [前端]HTML模拟实现一个基于摄像头的手势识别交互页面
  • AI集成运维管理平台的架构与核心构成解析
  • 蓝牙无线串口入门使用教程(以大夏龙雀 WF24 和 BT36 为例)
  • 【Net】TCP/IP 协议
  • 计算机视觉之三维重建(深入浅出SfM与SLAM核心算法)—— 2. 摄像机标定
  • 经典 C 程序 100 例实战详解:从入门到精通的一周学习计划
  • 【论文阅读32】预期寿命预测(2024)
  • 使用 MkDocs 构建并部署项目文档到 GitHub Pages
  • OpenCV基础知识
  • Cesium1.95中加载模型过多导致内存溢出的解决方案(服务端层面、代码层面、浏览器层面)
  • 大白话解释蓝牙的RPC机制
  • [vale os_3] 文件系统/VFS | 网络协议栈
  • 【React】SWR 和 React Query(TanStack Query)
  • 力扣HOT100之技巧:169. 多数元素
  • 【Zephyr 系列 21】OTA 升级与产测系统集成:远程配置、版本验证、自动回滚机制设计
  • 请问黑盒测试和白盒测试有哪些方法?
  • 力扣-198.打家劫舍
  • leetcode HOT100(49.字母异位词分组)
  • 怎样解决在ubuntu 22.04上QT: DataVisualization控件显示黑屏的问题
  • 触觉智能RK3576核心板工业应用之软硬件全国产化,成功适配开源鸿蒙OpenHarmony5.0
  • LangGraph--带记忆和工具的聊天机器人
  • Modbus TCP转DeviceNet网关连接ABB变频器配置案例
  • 破解关键领域软件测试“三重难题”:安全、复杂性、保密性