Spark Core

Spark Core

💡 原文中文,约38200字,阅读约需91分钟。
📝

内容提要

本文介绍了Spark Core的基本功能和应用场景,RDD的特性和转换算子和行动算子的使用,共享变量的使用方法和原理,内核调度和DAG的作用,宽窄依赖和内存迭代计算的优势,并行度设置和Shuffle阶段的工作原理,以及任务调度和层级关系。

🎯

关键要点

  • Spark Core 是 Apache Spark 的核心模块,支持分布式内存计算和数据处理。
  • RDD(弹性分布式数据集)是 Spark 的基本数据抽象,支持高效的并行计算和容错机制。
  • RDD 的特性包括不可变性、可分区性和支持并行计算。
  • RDD 的创建可以通过并行化集合或读取外部数据源实现。
  • RDD 的算子分为转换算子和行动算子,转换算子是懒加载的,行动算子会触发计算。
  • 常用的转换算子包括 map、flatMap、filter、reduceByKey 等。
  • 行动算子包括 collect、count、first、take 等,用于获取计算结果。
  • RDD 的持久化可以通过缓存和检查点实现,缓存可以提高性能,检查点用于安全存储。
  • DAG(有向无环图)是 Spark 任务调度的核心,描述了作业的各个阶段及其依赖关系。
  • 宽依赖和窄依赖影响 DAG 的阶段划分,窄依赖可以在内存中高效执行,而宽依赖需要进行数据洗牌。
  • Spark 的并行度设置影响任务的执行效率,建议设置为 CPU 核心数的 2 到 10 倍。
  • Shuffle 是连接 map 和 reduce 的桥梁,涉及序列化、网络 IO 和磁盘读写。
  • Spark 的任务调度通过 DAG Scheduler 和 Task Scheduler 管理任务的分配和执行。
➡️

继续阅读