Spark-继续RDD
接着上篇博客的rdd的transformation有这么多常用的API: 另一个action也有很多API:
Spark 最重要的一个功能是它可以通 过 各种操作( operations )持久化(或者 缓 存)一个集合到内存中。当你持久化一个 RDD 的 时 候,每一个 节 点都将参与 计 算的所有分区数据存 储 到内存中,并且 这 些 数据可以被 这 个集合(以及 这 个集合衍生的其他集合)的 动 作( action )重复利用。 这 个能力使后 续 的 动 作速度更快(通常快 10 倍以上)。 对应 迭代算法和快速的交互使用来 说 , 缓 存是一个关 键 的工具。你能通 过 persist() 或者 cache() 方法持久化一个 rdd 。首先,在 action 中 计 算得到 rdd ;然后,将其保存在每个 节 点的内存中。Spark的 缓 存是一个容 错 的技 术 -如果RDD的任何一个分区 丢 失,它 可以通 过 原有的 转换 ( transformations )操作自 动 的重复 计 算并且 创 建出 这 个分区。此外,我 们 可以利用不同的存 储级别 存 储 每一个被持久化的RDD。例如,它允 许 我 们 持久化
集合到磁盘上、将集合作为序列化的 Java 对象持久化到内存中、在节点间复制集合或者存储集合到 Tachyon中。我 们 可以通 过传递 一个 StorageLevel 对 象 给 persist() 方法 设 置 这 些存储级别 。 cache() 方法使用了默 认 的存 储级别— StorageLevel.MEMORY_ONLY 。
完整的存 储级别介绍如下所示:
Spark也会自动持久化一些shuffle操作(如 reduceByKey )中的中间数据,即使用户没有调用 persist 方法。 这样 的好 处 是避免了在shuffle出 错 情况下,需要重复 计 算整个 输 入。如果用户计划重用 计算过程中产生的RDD,推荐调用 persist 方法。
Spark的多个存储级别意味着在内存利用率和cpu利用效率间的不同权衡。通过下面的过程选择一个合适的存储级别:如果你的RDD适合默认的存储级别(MEMORY_ONLY),就选择默认的存储级别。因为这 是cpu利用率最高的 选项 ,会使RDD上的操作尽可能的快。如果不适合用默 认 的 级别 , 选MEMORY_ONLY_SER。 选择 一个更快的序列化 库 提高对象的空间使用率,但是仍能够相当快的访问。
除非函数 计 算 RDD 的花 费较 大或者它 们 需要 过滤 大量的数据,不要将 RDD 存 储 到磁 盘上,否 则 ,重复 计 算一个分区就会和重磁 盘 上 读 取数据一 样 慢。如果你希望更快的 错误 恢复,可以利用重复 (replicated) 存 储级别 。所有的存 储级别 都可
以通 过 重复 计 算 丢 失的数据来支持完整的容 错 ,但是重复的数据能 够 使你在 RDD 上 继续运 行任 务 ,而不需要重复 计 算 丢 失的数据。在 拥 有大量内存的 环 境中或者多 应 用程序的 环 境中, OFF_HEAP 具有如下 优势 :它 运 行多个 执 行者共享 Tachyon 中相同的内存池它 显 著地 减 少 垃圾 回收的花 费如果 单 个的 执 行者崩 溃 , 缓 存的数据不会 丢 失。
Spark 自 动 的 监 控每个 节 点 缓 存的使用情况,利用最近最少使用原 则删 除老旧的数据。如果想手动的删除RDD,可以使用 RDD.unpersist() 方法
微信关注我们
转载内容版权归作者及来源网站所有!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。
Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。
Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。
Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。