Apache Spark是一个开源集群运算框架,Spark使用了存储器内运算技术,能在数据尚未写入硬盘时即在存储器内分析运算。
摘要:Hive on Spark 让传统 Hive 数仓跑在 Spark 引擎上。本文从 RSC 远程作业提交机制、HQL 编译 6 步、MR/Tez/Spar...
摘要:本文从 Spark 三层序列化体系(Task Closure Shuffle Wire Dataset Internal)、四种序列化路径差异、Enc...
摘要:从 RDD 到 DataFrame 再到 DataSet,Spark 的 API 经历了三次重大进化。DataFrame = DataSet[Row](有...
摘要:JDBC 是连接传统关系型数据库的桥梁。本文从 JDBC 读取三模式(整表/数值分区/自定义Predicate)、并行分区原理、谓词/列裁剪下推、批量写入...
摘要:从 2012 年的 Shark 到 2020 年的 Adaptive Query Execution,SparkSQL 走过了一条从"Hive on Sp...
摘要:Parquet 是 Spark 生态中最推荐的列式存储格式——Schema 自描述(零推断)、谓词下推到 Row Group 级别、列式 Vectoriz...
摘要:Spark 内存管理是性能调优的核心战场——理解 UnifiedMemoryManager 的 Execution/Storage 动态借用机制、Tung...
摘要:Reduce Task 如何找到成百上千个 Map Task 输出的 Shuffle 文件?如何精准定位到目标分区的数据块?本文从 MapOutputTr...
摘要:RDD 和 Dataset 是 Spark 两大核心抽象,它们之间的互操作是连接"低级 API"与"高级 API"的桥梁。本文从 6 条转换路径、Enco...
摘要:SparkSQL 作为 Apache Spark 生态中最核心的模块之一,不仅提供了统一的 SQL 查询入口,更承载了 DataFrame/Dataset...
摘要:上一篇讲了 foreachRDD 是"输出操作",这篇讲它的姊妹算子 transform——一个"转换操作",拿到 RDD 处理后返回新 RDD,让流继续...
摘要:BypassMergeSortShuffle 是 SortShuffleManager 提供的最轻量 Shuffle Write 路径——它绕过排序、绕过...
摘要:JSON 是数据工程中最常见的半结构化格式,如何高效地将 JSON 转为类型安全的 Dataset[CaseClass]?本文从 spark.read.j...
摘要:Shuffle 是 Spark 作业中最昂贵的操作,也是性能瓶颈的高发区。Spark 2.0 起 SortShuffleManager 成为唯一的默认实现...
摘要:为什么你的分组 TopN 任务跑了 30 分钟还 OOM?答案通常是四个字——groupByKey。本文将二次排序和分组 TopN 作为两条优化主线,从反...
摘要:Spark Standalone 集群的 Master 节点是资源调度的核心,一旦宕机整个集群陷入瘫痪。Master HA 通过 ZooKeeper 实现...
摘要:Spark 1.x 的 Accumulator 接口存在严重设计缺陷:类型单调(IN=OUT)、无法自定义扩展、内置实现仅 4 种。Spark 2.0 引...
摘要:为什么 DAGScheduler 从不关心集群用的是 Standalone 还是 YARN?为什么 Master 从不关心 DAG 怎么切?这背后是 Sp...
摘要:你是否注意过 Spark UI 上的 "DAG Visualization" 图?那个有向无环图(DAG)不是凭空生成的——它是 Spark 从你写的每一...