- 博客(32)
- 收藏
- 关注
原创 AM中是如何启动Driver的?调用了什么方法?
此机制确保了 Spark 应用与 YARN 资源管理的无缝集成。方法根据部署模式(Client/Cluster)选择执行逻辑。Driver 运行在 AM 的容器内,负责初始化。启动 Driver,具体代码实现在。在 Apache Spark 的。在 YARN 集群模式下,
2025-04-10 14:25:57
300
原创 maptask 在缓冲区数据溢写到磁盘前的排序,是分区间的排序,还是分区内的排序?
在MapTask中,缓冲区数据溢写(Spill)到磁盘前的排序是,而非分区间(全局)的排序。
2025-04-09 07:24:21
248
原创 mapreduce 过程中,maptask的partitioner是在map阶段中具体什么阶段分区的?
方法会被调用,根据键(Key)和配置的分区规则(如HashPartitioner的默认哈希分配),在MapReduce的Map阶段中,Partitioner(分区器)的作用发生在。,并在内存中按分区缓存数据。这一设计保证了MapReduce的高效性和扩展性。:分区逻辑是在内存中实时计算的,而非等到所有map任务结束后才执行。,但在数据被写入磁盘(spill到本地文件)之前。在键值对被写入内存缓冲区的过程中,Partitioner的。输出键值对时,每个键值对会进入一个。),等待ReduceTask拉取。
2025-04-08 21:41:31
744
原创 mysql 执行计划中eq_ref是什么意思?
表示通过主键或唯一索引实现高效的等值关联查询,是优化良好的执行计划标志。被驱动表的连接字段必须是主键或唯一索引,确保每个驱动表的记录在被驱动表中。),表示查询优化器在使用**主键(PRIMARY KEY)唯一索引(UNIQUE INDEX)**进行等值匹配()时,对表的访问方式。它通常出现在多表关联查询(如。)中,且被驱动表的连接条件使用了主键或唯一索引。,通常说明索引设计合理,关联查询性能较高。是性能最优的连接类型之一,仅次於。在 MySQL 的执行计划中,
2025-04-07 10:07:19
395
原创 为什么InnoDB中意向锁IX和S锁不兼容
在数据库锁机制中,意向排他锁(IX)和共享锁(S)的不兼容性源于它们在数据操作和事务隔离需求上的根本冲突。数据库通过锁机制确保事务的ACID特性(尤其是隔离性)。这种设计在数据库系统中平衡了并发性能与数据可靠性,是锁机制高效管理资源的核心逻辑之一。
2025-04-06 15:44:42
887
原创 为什么InnoDB中意向锁IX和IX可以兼容
在数据库锁机制中,意向排他锁(IX)之间的兼容性设计是为了提升并发性能,同时确保数据一致性。通过这种机制,数据库既支持高并发写入(如多个事务修改不同行),又能在行级精确管理冲突,是数据库锁设计的精髓之一。若IX锁互斥,即使事务操作不同行,也会因表级锁冲突而串行化,导致并发性能下降。意向锁(Intention Lock)是一种。(如DDL语句),仅用于协调行级锁的冲突。
2025-04-06 15:42:08
543
原创 innodb如何实现mvcc的
InnoDB 实现 MVCC(多版本并发控制)的机制主要依赖于。)时,InnoDB 为其生成一个。最终事务 A 读取到版本0。
2025-04-05 23:38:41
760
原创 如果重做日志缓冲区内容还没被刷新到重做日志文件中发生宕机,Innodb是如何保证持久化的?
若宕机发生在两次刷新之间,可能丢失最多1秒内的已提交事务。来保证持久性(Durability)。:若操作系统崩溃,可能丢失最多1秒内的已提交事务。:即使宕机,已提交事务的修改必定能从日志恢复。),确保日志持久化后才返回成功。日志缓冲区每秒刷新一次到磁盘,每次事务提交时将日志写入。
2025-04-04 15:53:01
717
原创 数据仓库建模-CIF方法中3NF建模的核心作用解析
两个系统通过不同的外键描述客户与业务的关联,导致跨系统分析困难。即使源系统已是3NF,EDW的3NF建模仍聚焦于。在EDW中创建统一的。在EDW中设计统一的。,而非单一系统的优化。
2025-04-02 00:03:09
786
原创 详解Spark executor
是运行在集群工作节点(Worker Node)上的进程,负责执行具体的计算任务并管理数据。它是 Spark 分布式计算的核心组件之一,直接决定了任务的并行度和资源利用率。Executor 是 Spark 分布式计算的执行单元,负责 Task 运行、数据缓存和 Shuffle 处理。是优化 Spark 应用性能的关键。通过调整资源参数、优化数据本地性和处理倾斜问题,可以显著提升任务的执行效率。在 Apache Spark 中,
2025-03-24 15:04:33
1153
原创 在yarn cluster模式下,提交应用后,是如何在集群的某个节点生成driver的,具体流程是什么
在 YARN Cluster 模式下,Spark 应用的 Driver 生成流程涉及多个关键步骤,其核心在于。这种设计使得 Driver 生命周期由 YARN 管理,适合生产环境中需要高可靠性和资源调度的场景。此命令会触发上述完整流程,最终在集群的某个 NodeManager 上生成 Driver。YARN Cluster 模式下,Driver 的生成本质是。
2025-03-24 15:02:47
281
原创 Driver具体负责什么工作
在 Apache Spark 中,Driver(驱动程序) 是 Spark 应用的核心控制节点,负责协调整个应用的执行流程。它是用户编写的 Spark 应用程序(如 方法)的入口点,直接决定了任务的调度、资源分配和结果处理。以下是 Driver 的具体职责和工作内容:Driver 的具体操作:创建 。将 和 转换为 DAG。调度 Task 到 Executor。收集结果并输出。总结Driver 是 Spark 应用的“大脑”,负责从代码解析到任务调度的全流程控制。它的核心职责
2025-03-24 15:01:57
400
原创 DAG是RDD划分完成后就生成了吗?
等转换操作时,Spark 仅记录 RDD 的血缘关系(Lineage),不会生成 DAG。等行动操作时,Spark 才会根据 RDD 的血缘关系生成 DAG。在 Apache Spark 中,
2025-03-23 22:52:34
389
原创 RDD的转换,看上去和func关系最大,外层的map、filter有起到作用吗?
等转换方法将用户逻辑无缝嵌入分布式计算框架,实现高效的大规模数据处理。没有转换操作的抽象,Spark 无法对计算逻辑进行优化(如合并连续。没有血缘关系的记录,Spark 无法在节点故障时恢复数据。在 Spark RDD 的转换操作中,func。本身是单机代码,无法自动分发到集群节点执行。等转换方法通过 Spark 的调度器将。承担了核心逻辑,但外层的转换方法(如。假设没有外层的转换方法,直接让用户调用。分发到各个分区的数据所在节点并行执行。,但两者的角色截然不同。等转换方法的核心作用不仅仅是调用。
2025-03-23 21:38:01
703
原创 RDD只支持粗粒度转换,这个粗粒度体现在哪里?细粒度的转换有哪些?
是指转换操作以**分区(Partition)**为最小单位进行批量处理,而不是针对单个数据元素或记录。这种设计是 RDD 的核心特性之一,直接影响其容错性、性能和适用场景。,因此不适合频繁更新的场景(如实时更新的键值存储)。这些方法需要重新生成整个分区,RDD 的转换操作(如。在 Spark 中,
2025-03-23 20:19:17
730
原创 分布式数据集容错性两种方式解析
不保存完整数据,而是记录生成数据的所有操作步骤(如转换、依赖关系),或通过日志(如WAL, Write-Ahead Log)记录数据的更新历史。当故障发生时,通过重放操作或日志恢复数据。定期将数据集的完整或增量状态持久化存储到可靠的分布式存储系统(如HDFS、S3)中。当节点故障时,直接从最近的检查点恢复数据,无需重新计算。这两种方式的设计目标是解决在分布式系统中节点故障时如何快速恢复数据,同时平衡存储开销和计算效率。
2025-03-23 20:10:42
494
原创 mapreduce是如何进行迭代式计算的
每次迭代的输入依赖前一次的输出。由于 MapReduce 原生不支持循环逻辑,迭代过程需通过外部控制(如脚本或驱动程序)管理。若需在 Hadoop 生态中执行迭代任务,建议优先使用 Spark 或 Flink,MapReduce 仅作为兼容性方案保留。假设需求:通过 3 次迭代计算逐步逼近目标(如数值优化、简单聚类)。在 MapReduce 中进行迭代式计算需要。
2025-03-22 13:50:05
729
原创 MapReduce1中资源预先划分为固定数量的map slot和reduce slot,具体是怎么划分的?
简化了资源管理,但牺牲了灵活性和资源利用率。这种设计适合早期批处理场景,但在复杂或多变的工作负载下显得力不从心。YARN的动态资源管理(容器化)正是为了解决这些问题而引入,成为现代大数据生态的基石。理解MRv1的slot机制,有助于更好地体会Hadoop架构的演进历程。在Hadoop MapReduce 1(MRv1)中,资源管理采用静态分配的方式,的数量在集群启动时预先配置,且无法动态调整。在YARN(Hadoop 2.x+)中,资源管理改进为。每个TaskTracker节点上的。
2025-03-20 20:23:34
871
原创 jobtracker中资源管理和作业控制是如何耦合在一起,导致不能动态调整?
这种设计导致资源分配僵化、无法动态调整。在Hadoop MRv1中,
2025-03-20 20:17:44
779
原创 MapReduce过程中reduce task的数量是如何确定的?
当用户未显式设置时,Hive根据输入数据量和配置参数动态计算Reduce任务数。在Hadoop MapReduce及Hive中,numReduceTasks。用户可以通过代码或配置参数直接指定Reduce任务数,优先级最高。某些操作或查询逻辑会覆盖用户设置,强制指定Reduce任务数。
2025-03-20 20:06:18
402
原创 Hive根据输入数据量计算reducer的数量,这个输入数据量是map阶段的输出结果还是客户端提交任务时的数据量?
Reducer 数量在**作业提交阶段(客户端)**确定,此时 Map 阶段尚未执行,因此只能基于原始输入数据的元信息(如文件大小、表统计信息)进行估算。Reducer 数量在作业提交时确定,无法根据 Map 阶段的实际输出动态调整。支持动态调整 Reducer 数量(需开启。),根据 Map 阶段输出量优化并行度。
2025-03-20 20:04:21
804
原创 reduce在通过http读取map的结果数据时,是只读自己需要的分区数据 还是整个block或者整个文件的数据?
在Shuffle阶段,每个Reduce任务需从。在Hadoop MapReduce中,
2025-03-20 20:03:22
435
原创 为什么要进行数据仓库分层?
分层是数据仓库设计的核心原则,通过结构化分工实现高效、可靠、易维护的数据处理流程。它不仅提升技术效率,还能更好地支持业务决策,是应对大规模数据场景的必然选择。
2025-03-15 10:14:39
381
原创 为什么说数据仓库是面向主题的?
数据仓库的面向主题是由于需求为分析需求决定的,它通过围绕业务核心领域组织数据,解决了传统数据库中数据分散、结构复杂的问题,最终服务于高效的决策支持(如BI、报表、预测分析)。这一设计理念体现了从“技术驱动”到“业务驱动”的转变。
2025-03-13 15:00:47
691
原创 数据仓库有哪些建模方法?
基于关系型数据库的规范化理论,强调减少数据冗余,适合复杂的企业级数据仓库(EDW)。通过理解业务目标和数据特点,选择最合适的建模方法能显著提升数据仓库的效率和价值。以业务分析需求为导向,强调查询性能和易用性,适合面向分析场景(如BI、报表)。两大类,不同方法适用于不同的业务场景和目标。数据仓库的建模方法主要分为。
2025-03-12 15:44:45
571
原创 什么是幻读?
是指在同一事务内,由于其他事务插入或删除了符合当前事务查询条件的数据行,导致同一查询多次执行时返回不同的结果集。(新增或消失的行),而不仅仅是同一行数据的值被修改。ANSI SQL 隔离级别中的。
2025-03-11 22:55:33
386
原创 隔离级别中的可重复读详解
(Non-repeatable Read)现象实现这一点,但可能允许。虽然可重复读解决了不可重复读,但。ANSI SQL中的。
2025-03-11 22:50:49
494
原创 聚簇索引可以使用非主键字段吗?
id INT AUTO_INCREMENT PRIMARY KEY, -- 主键自动成为聚簇索引聚簇索引id(主键)。数据存储:按id顺序物理排列。
2025-03-11 22:36:24
245
原创 为什么聚簇索引的随机主键会导致页分裂?
随机主键导致页分裂的根本原因是主键值的无序性,迫使 B+树频繁调整数据物理位置以维持索引结构。优化方向:通过有序主键或存储设计,减少页分裂,提升写入性能和存储效率。
2025-03-11 22:22:58
752
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人