Ch10-Spark 之内存管理
June 20, 2019
Spark 作为一个以擅长内存计算为优势的计算引擎,内存管理方案是其非常重要的模块;Spark 的内存可以大体归为两类:execution(运行内存)和 storage(存储内存),前者包括 shuffles、joins、sorts 和 aggregations 所需内存,后者包括 cache 和节点间数据传输所需内存;
...Spark 作为一个以擅长内存计算为优势的计算引擎,内存管理方案是其非常重要的模块;Spark 的内存可以大体归为两类:execution(运行内存)和 storage(存储内存),前者包括 shuffles、joins、sorts 和 aggregations 所需内存,后者包括 cache 和节点间数据传输所需内存;
...Spark 的一个重要特性是能够把计算结果数据保存到内存或磁盘中,供后面的操作读取,这就是 RDD 的缓存,这个过程也可称为 persist 或 caching(Spark 提供了 persist()
和 cache()
函数来缓存 RDD)。
checkpoint 的机制保证了需要访问重复数据的应用 Spark 的 DAG 执行行图可能很庞大,task 中计算链可能会很长,这时如果 task 中途运行出错,那么 task 的整个需要重算非常耗时,因此,有必要将计算代价较大的 RDD checkpoint 一下,当下游 RDD 计算出错时,可以直接从 checkpoint 过的 RDD 那里读取数据继续算。
...Spark 的一个重要特性是能够把计算结果数据保存到内存或磁盘中,供后面的操作读取,这就是 RDD 的缓存,这个过程也可称为 persist 或 caching(Spark 提供了 persist()
和 cache()
函数来缓存 RDD)。
Spark 并不直接对数据进行处理,而是将数据抽象成了分布式数据集这种数据结构。目前该数据结构主要经历了三代变迁。
...Spark 并不直接对数据进行处理,而是将数据抽象成了分布式数据集这种数据结构。目前该数据结构主要经历了三代变迁。
...Spark Shuffle 经过了若干次优化。
...Spark Job 执行流程。
...Spark 应用执行模式的不同主要体现在 Cluster Manager 使用的是哪个。如果是单独的进程,那么就是 Standalone 模式;如果是 Hadoop Yarn,那就是 Hadoop Yarn 模式。
...Apache Spark 是用于大规模数据处理的统一分析引擎,基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将 Spark 部署在大量硬件之上,形成集群。
...