Spark 使用数据局部性吗?

2024-01-09

我正在尝试了解 Apache Spark 的内部结构。我想知道 Spark 是否使用某些机制来确保从 InputFormat 读取或写入 OutputFormat(或 Spark 本机支持的其他格式而不是从 MapReduce 派生的格式)时的数据局部性。

在第一种情况(阅读)中,我的理解是,当使用InputFormat时,分割与包含数据的主机(或多个主机??)相关联,因此Spark尝试将任务分配给执行器,以尽可能减少网络传输尽可能。

就写作而言,这样的机制如何运作?我知道从技术上讲,HDFS 中的文件可以本地保存在任何节点中并复制到其他两个节点(因此您使用网络进行 3 个副本中的两个),但是,如果您考虑写入其他系统,例如 NoSQL 数据库( Cassandra、HBase、其他..),此类系统有自己的数据分发方式。有没有办法告诉spark以一种基于输出接收器(目标NoSQL数据库,本机或通过OutputFormat看到)期望的数据分布优化数据局部性的方式对RDD进行分区?

我指的是 Spark 节点和 NoSQL 节点位于同一物理机器中的环境。


如果您在同一台物理机上使用 Spark 和 Cassandra,则应该查看Spark-Cassandra-连接器 https://github.com/datastax/spark-cassandra-connector它将确保读取和写入的数据局部性。

例如,如果您将 Cassandra 表加载到 RDD 中,连接器将始终尝试在每个节点上本地对该 RDD 执行操作。 当您将 RDD 保存到 Cassandra 中时,连接器也会尝试在本地保存结果。

假设您的数据已经在 Cassandra 集群中保持平衡。如果你的 PartitionKey 没有正确完成,你最终会得到一个不平衡的集群。

还要注意 Spark 上的混排作业。例如,如果您在 RDD 上执行 ReduceByKey,那么无论如何您最终都会在网络上传输数据。因此,请务必仔细计划这些工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spark 使用数据局部性吗? 的相关文章

随机推荐

  • 如何捕获 ASCX 控件(而不是隐藏代码)引发的异常?

    我有一个很大的 ASPX 页面 其中包含许多 ASCX 控件 如果控件引发异常 它应该记录异常并仅隐藏其自身 所有其他控件仍应呈现 如何处理从前端文件 ASCX 而不是代码隐藏 引发的各个 ASCX 的异常 例如 尝试使用以下方法引用无效属
  • 算法 CRC-12

    我正在尝试对 12 位 CRC 和算法执行 crc table 但总是得到错误的结果 你能帮助我吗 要创建 crc 表 我尝试 void crcInit void unsigned short remainder int dividend
  • 为什么我的 Perl 代码中会收到“调用得太早以检查原型”警告?

    我有一个像这样的 Perl 文件 use strict f1 sub f3 f2 sub f1 sub f2 简而言之 f1在定义之前被调用 因此 Perl 发出警告 f1 调用得太早 无法检查原型 但情况也是如此f2 唯一的区别是它是从另
  • 如何抑制整个命名空间文件的 StyleCop 警告

    我正在使用 Style Cop 版本 4 7 全局抑制并不适用于选定命名空间的每个成员 我在同一命名空间 StyleCopSample Test 中有两个文件 当我在第一个文件中设置抑制消息时 仅针对该文件抑制消息 但第二个文件仍然会收到警
  • R 裁剪栅格的无数据

    我想裁剪一些栅格的无数据部分 图像的示例1 https i stack imgur com hkr4d png其中无数据为黑色 无需手动定义范围 任何想法 您可以使用trim删除只有外部行和列NA values library raster
  • 同时是 Kotlin 成员和扩展

    为了更多地了解 Kotlin 并使用它 我正在开发一个示例 Android 应用程序 我可以在其中尝试不同的事情 然而 即使在搜索该主题一段时间后 我仍无法找到以下问题的正确答案 让我们在 View 类上声明一个 虚拟 扩展函数 fun V
  • 当我的程序出现分段错误时,即使设置了 RUST_BACKTRACE=1,为什么我也得不到回溯?

    我想查看随机分段错误的回溯 所以我设置了RUST BACKTRACE 1环境变量 通常它会打印回溯信息 但这次不打印 为什么不RUST BACKTRACE work RUST BACKTRACE 1 target debug grin mi
  • 重写 Javascript Map 的相等函数

    我想在 Javascript 中创建一个 Map 字典 其中键是数字数组 值是某个对象 我想从地图中检索以前使用相同数组内容存储的值 即 如果我有一个包含某些内容的数组 我想检索以前为具有相同内容的数组存储的值 如果有 在大多数其他语言中
  • 异步/等待和缓存

    我的服务层正在缓存大量对 memcached 的 Db 请求 这是否导致无法使用 Async Await 例如我怎么能等待这个 public virtual Store GetStoreByUsername string username
  • NSString 内部结构 - 长度如何工作?

    我有一个关于 NSString 内部结构的问题 我想检查字符串长度 基本上我想知道 NSString 是否知道它的长度 每次计数 计数并缓存结果 我应该存储它的长度并每次计算或调用长度方法吗 为了测试一个字符串 我可以测试 nil 或询问它
  • xml dom解析器在java中按名称查找标签

    我有一个 xml 我只想获取城市和温度 我尝试了以下方法 HttpParams httpParameters new BasicHttpParams HttpClient httpclient new DefaultHttpClient h
  • 在 Word2Vec 中合并预训练模型?

    我已经下载了 1000 亿字的 Google 新闻预训练矢量文件 除此之外 我还在训练自己的 3GB 数据 生成另一个预训练的矢量文件 两者都有 300 个特征维度和超过 1GB 的大小 我如何合并这两个巨大的预训练向量 或者我如何训练一个
  • C# 中的映射的映射相当于什么

    在 C 中我正在使用map
  • MVP模式(GWT)的优点是什么

    我刚刚读过本文 http code google com intl de DE webtoolkit doc latest DevGuideMvpActivitiesAndPlaces html这确实让我很困惑 其次 此模型允许我们最大限度
  • 什么是控制器类? [复制]

    这个问题在这里已经有答案了 什么是控制器类 例如 uiviewcontroller uiviewcontroller 和 uiview 有什么区别 谢谢 Cocoa 使用面向对象编程中的模型 控制器 视图概念进行工作 在此系统中 模型由存储
  • 如何获取 NameValueSectionHandler 类型的 ConfigurationSection 的值

    我正在使用 C Framework 3 5 VS 2008 我正在使用ConfigurationManager将配置 不是默认的 app config 文件 加载到 Configuration 对象中 使用 Configuration 类
  • 解析 SDK 1.7.1 无法在 Xcode 6.3 中工作

    我的代码在 Xcode 6 2 中运行良好 更新到 Xcode 6 3 后 我遇到了一些 Nullabilty 错误 下载 Parse SDK 1 7 1 后 我可以解决这些错误 所以我删除了项目中旧的 Parse 框架文件并将新的粘贴到其
  • 将浮点数转换为无符号整数,同时保留顺序

    我找到了很多关于 SO 的答案 专注于转换float to int 我只处理正浮点值 我一直在使用的一种简单方法是 unsigned int float2ui float arg0 float f arg0 unsigned int r u
  • 设计 RESTful 登录服务

    我经历过类似的问题here https stackoverflow com questions 4608225 how do i implement login in a restful web service 但我还不清楚概念 这是我的场
  • Spark 使用数据局部性吗?

    我正在尝试了解 Apache Spark 的内部结构 我想知道 Spark 是否使用某些机制来确保从 InputFormat 读取或写入 OutputFormat 或 Spark 本机支持的其他格式而不是从 MapReduce 派生的格式