《Spark与Hadoop大数据分析》一一3.5 持久化与缓存

3.5 持久化与缓存

Spark 的一个独特功能是在内存中持久化 RDD。你可以使用 persist 或 cache 变换来持久化 RDD,如下所示:

上述两个语句都是相同的,并且会在 MEMORY_ONLY 存储级别缓存数据。它们的区别在于:cache 是指 MEMORY_ONLY 存储级别,而 persist 可以根据需要选择不同的存储级别,如下表所示。当第一次使用动作来进行计算时,它将保存在节点上的内存中。了解缓存 RDD 的百分比及其大小的最简单方法是检查管理界面中的 Storage 选项卡,如图3-11 所示:

图3-11 缓存的 RDD:缓存的百分比和大小
3.5.1 存储级别
根据应用需求的需要,RDD 可以用不同的存储级别来存储。下表显示了 Spark 的存储级别及其含义。

3.5.2 应该选择哪个存储级别
Spark 的各个存储级别在内存占用和 CPU 效率之间提供不同的权衡。你可以按照下面的过程选择其中一个:
如果整个 RDD 能放进内存中,请选择 MEMORY_ONLY。
使用 MEMORY_ONLY_SER 以获得更好的紧凑性和更好的性能。这对 Python 并不重要,因为它的对象总是会用 pickle 库序列化。
如果重新计算比从磁盘读取的开销更大,请使用 MEMORY_AND_DISK。
不要复制 RDD 存储,除非你需要快速的故障恢复。

时间: 2024-12-24 02:02:25

《Spark与Hadoop大数据分析》一一3.5 持久化与缓存的相关文章

《Spark与Hadoop大数据分析》——1.3 工具和技术

1.3 工具和技术 让我们来看看在 Hadoop 和 Spark 中用于大数据分析的不同工具和技术. 虽然 Hadoop 平台可以用于存储和处理数据,但 Spark 只能通过将数据读入内存来进行处理. 下表展示了典型大数据分析项目中所使用的工具和技术.

《Spark与Hadoop大数据分析》一一

3.1 启动 Spark 守护进程 如果你计划使用 Standalone 的集群管理器,则需要启动 Spark 的主机(master)和工作机(worker)的守护进程(daemon),它们是 Spark 架构的核心组件.守护进程的启动/停止在不同的发行版里略有差异.Hadoop 发行版(如 Cloudera.Hortonworks 和 MapR)会把 Spark 作为服务,并把 YARN 作为默认的资源管理器.这意味着在默认情况下所有 Spark 应用程序都会在 YARN 框架上运行.但是,要

《Spark与Hadoop大数据分析》一一第1章 从宏观视角看大数据分析

第1章 从宏观视角看大数据分析 本书的目标是让你熟悉 Apache Spark用到的工具和技术,重点介绍Hadoop平台上使用的Hadoop部署和工具.大多数Spark的生产环境会采用Hadoop集群,用户在集成 Spark和Hadoop配套的各种工具时会遇到很多挑战.本书将讲解Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)和另一种资源协商器(Yet Another Resource Negotiator,YARN)面临的集成挑战,以及Spa

《Spark与Hadoop大数据分析》一一导读

Preface 前 言 本书讲解了Apache Spark和Hadoop的基础知识,以及如何通过简单的方式将它们与最常用的工具和技术集成在一起.所有Spark组件(Spark Core.Spark SQL.DataFrame.Dataset.Conventional Streaming.Structured Streaming.MLlib.GraphX和Hadoop核心组件).HDFS.MapReduce和Yarn 都在 Spark + Hadoop 集群的实现示例中进行了深入的探讨. 大数据分

《Spark与Hadoop大数据分析》一一1.1 大数据分析以及 Hadoop 和 Spark 在其中承担的角色

1.1 大数据分析以及 Hadoop 和 Spark 在其中承担的角色 传统的数据分析使用关系型数据库管理系统(Relational Database Management System,RDBMS)的数据库来创建数据仓库和数据集市,以便使用商业智能工具进行分析.RDBMS 数据库采用的是写时模式(Schema-on-Write)的方法,而这种方法有许多缺点.传统数据仓库的设计思想是用于提取.转换和加载(Extract, Transform, and Load,ETL)数据,据此回答与用户需求直

《Spark与Hadoop大数据分析》一一2.1 Apache Hadoop概述

2.1 Apache Hadoop概述 Apache Hadoop 是一个软件框架,可以在具有数千个节点和 PB 级数据的大型集群上进行分布式处理.Apache Hadoop 集群可以使用故障率一般较高的低价通用硬件来构建.Hadoop 的设计能够在没有用户干预的情况下优雅地处理这些故障.此外,Hadoop 采用了让计算贴近数据(move computation to the data)的方法,从而显著降低了网络流量.它的用户能够快速开发并行的应用程序,从而专注于业务逻辑,而无需承担分发数据.分

《Spark与Hadoop大数据分析》一一2.5 小结

2.5 小结 Apache Hadoop 提供了一个用于大数据存储的可靠且可扩展的框架(HDFS),以及一个用于运行和管理多个大数据应用程序的强大集群资源管理框架(YARN).Apache Spark 提供了大数据处理的内存级性能,以及用于交互式探索性分析.实时分析.机器学习和图分析的库和 API.虽然 MR 是 Hadoop 上的主要处理引擎,但它有很多缺点,例如性能较差和设计应用程序时不够灵活.Apache Spark 是 MR 的替代品.所有基于 MR 的工具(如 Hive.Pig.Mah

《Spark与Hadoop大数据分析》一一3.7 小结

3.7 小结 RDD 是 Spark 中基本的数据单元,Spark 编程就是围绕创建和执行 RDD 上的操作(如变换和动作)进行的.Apache Spark 程序可以在 shell 中交互式执行或通过提交应用程序来执行.它的并行度是由 RDD 中的分区数量决定的.而分区的数量则由 HDFS 文件中的区块数或资源管理器的类型以及用于非 HDFS 文件的配置属性决定.在内存中缓存 RDD 对于在同一 RDD 上执行多个动作是有用的,因为它提供了更高的性能.当使用 MEMORY_ONLY选项缓存 RD

《Spark与Hadoop大数据分析》一一2.4 安装 Hadoop 和 Spark 集群

2.4 安装 Hadoop 和 Spark 集群 在安装 Hadoop和Spark之前,让我们来了解一下 Hadoop和Spark的版本.在 Cloudera.Hortonworks和MapR这所有三种流行的Hadoop发行版中,Spark都是作为服务提供的.在本书编写的时候,最新的Hadoop和Spark版本分别是2.7.2和2.0.但是,Hadoop发行版里可能是一个较低版本的Spark,这是因为Hadoop和 Spark 的发行周期并不同步.对于后续章节的实践练习,我们会使用来自 Clou