使用 Spark 加载由 --files 参数分发的共享库 (.so)

2024-01-09

我正在尝试在运行 Spark 作业时使用外部本机库(.so 文件)。首先,我使用提交文件--files争论。

加载我正在使用的库System.load(SparkFiles.get(libname))创建后SparkContext(确保;确定SparkFiles已填充)。 问题是该库仅由驱动程序节点加载,当任务尝试访问我得到的本机方法时

WARN TaskSetManager: Lost task 0.0 in stage 2.0 (TID 2, 13.0.0.206, executor 0): java.lang.UnsatisfiedLinkError

唯一对我有用的就是复制.so在运行 Spark 应用程序之前将文件发送给所有工作人员,并创建一个 Scala 对象,该对象将在每个任务之前加载库(可以使用以下命令进行优化)mapPartitions).

我尝试使用

--conf "spark.executor.extraLibraryPath=/local/path/to/so" \
--conf "spark.driver.extraLibraryPath=/local/path/to/so"

试图避免这种情况,但没有成功。

现在,由于我使用 EMR 来运行 Spark 作业,而不是一致的集群, 我想避免在运行作业之前将文件复制到所有节点。

有什么建议么?


解决方案比我想象的要简单 - 我所需要的只是每个 JVM 加载一次库

所以基本上我需要的是使用添加库文件--files并创建一个 Loader 对象:

object LibraryLoader {
    lazy val load = System.load(SparkFiles.get("libname"))
}

并在每个任务之前使用它(map, filter etc.)

例如

rdd.map { x =>
    LibraryLoader.load
    // do some stuff with x
}

惰性将确保在填充 SparkFiles 后创建对象,并且每个 JVM 进行单一评估。

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

使用 Spark 加载由 --files 参数分发的共享库 (.so) 的相关文章

  • Spark 两个分区数据帧之间的共置连接

    对于以下两个之间的连接DataFrames在 Spark 1 6 0 中 val df0Rep df0 repartition 32 col a cache val df1Rep df1 repartition 32 col a cache
  • List.empty 与 List() 与 new List()

    有什么区别List empty List and new List 我什么时候应该使用哪个 首先 new List 不会工作 因为List类是抽象的 另外两个选项定义如下the List object http www scala lang
  • 在Playframework2中,如何服务多个资源目录?

    asset目录有两个 一个是 ui dist另一个是 public 我尝试这样写路线 GET assets file controllers Assets at path public file GET ui file controller
  • 斯卡拉。浮点数的奇怪结果

    为什么减法时会得到奇怪的结果2 99999 from 3 scala gt math sqrt 3 res0 Double 1 7320508075688772 scala gt math pow res0 2 res1 Double 2
  • Scala:研讨会建议

    我被邀请为 PHP 观众举办一个 Scala 研讨会 这些人中的很多人根本没有接触过函数式编程语言 所以我想知道如何以某种方式介绍他们 以便他们充分利用它 我听说很多人很难理解高阶函数等 你有什么经历 我不想用太先进的东西吓跑他们 也不想让
  • 如何处理特定类型集合的操作?

    在我的申请中的几个不同地方 我需要采取Seq SalesRow 并返回一个Map String SalesRow 其中字符串是国家 地区的名称 我需要在几个地方使用它 例如 我获取所有 SalesRows 的列表 并获取按国家 地区划分的全
  • 玩 Scala 和线程安全

    该项目是使用编写的Play framework and Scala语言 我已经实施了compile time dependency 我按照 Play 中的这个例子进行操作 https github com playframework pla
  • Spark 2.0 弃用了“DirectParquetOutputCommitter”,没有它如何生活?

    最近 我们从 HDFS 上的 EMR gt S3 上的 EMR 启用了一致视图的 EMRFS 迁移 我们意识到 Spark SaveAsTable 镶木地板格式 写入 S3 的速度比 HDFS 慢约 4 倍 但我们发现使用 DirectPa
  • 从 takeOrdered 返回一个 RDD,而不是一个列表

    我正在使用 pyspark 进行一些数据清理 一个非常常见的操作是获取文件的一小部分并将其导出以供检查 self spark context textFile old filepath filename takeOrdered 100 sa
  • 有没有办法匹配规范中 Mockito 模拟对象的按名称调用参数?

    我正在使用一些方法测试一个对象和另一个对象之间的交互呼唤名字论据 但是 我不知道如何为该按名称调用参数创建参数匹配器 假设这是模拟对象的签名 def fn arg1 gt String arg2 Int Any 然后我真正想做的是测试是否使
  • 生成 Java JNI 标头

    我想做的就是使用 JDK Javah exe 程序生成 JNI 头文件 但无论我尝试什么 我都会收到错误消息 错误 找不到 ddg ndkTest NativeLib 的类文件 其中 ddg ndkTest 是命名空间 NativeLib
  • Scala 中的部分排序集合

    我正在尝试对链表节点的集合进行排序 该集合包含来自多个链表的节点 必须在每个列表中维护排序 但跨列表的排序并不重要 PartialOrdering T 似乎是自然的选择 但我在 Scala 中找不到任何支持它的标准函数 例如 sort只需要
  • Scala 相当于 Java 的 static 块吗?

    Scala 相当于 Java 的 static 块吗 伴生对象的构造函数 即主体 中的代码是not与 Java 类的静态初始化块中的代码完全相同 在下面的示例中 我创建了 A 的实例 但未进行初始化 scala gt object Test
  • 使用 scala 检索与给定节点相关的 neo4j 节点

    我有 2 个名为 User node 和 Article node 的节点 它们通过关系相关联 文章节点 gt Written By gt 用户节点 如何获取给定用户节点写入的所有文章节点 我假设您正在使用嵌入式 neo4j 因此有一个类型
  • Spark 数据集编码器:kryo() 与 bean()

    在 Spark 中处理数据集时 我们需要指定编码器来序列化和反序列化对象 我们可以选择使用Encoders bean Class
  • Spark 中的默认分区方案

    当我执行以下命令时 scala gt val rdd sc parallelize List 1 2 3 4 3 6 4 partitionBy new HashPartitioner 10 persist rdd org apache s
  • 使用 Json.format 没有可用的 MyClass 隐式格式

    在 Json format 上使用复杂对象作为另一个对象的属性时出现错误 我有两节课 RoleDTO and 电子邮件邀请DTO 电子邮件邀请DTO has a RoleDTO 所以 我宣布 case class RoleDTO id Op
  • 创建通用 Json 序列化函数

    是否可以使用 Play Framework 2 2 在 Scala 中创建一个通用函数 将任意对象序列化为 JSON 而无需提供编写器或格式化程序 例如 此非通用代码将创建给定客户的 JSON 响应 import play api libs
  • /system/lib/libart.so 中的本机崩溃

    我在 Play 商店中有一个应用程序 它有一个IntentService当应用程序启动时 它会做一些工作 并且会导致 Android 5 0 上的本机崩溃 该服务仅扫描资产文件夹以进行应用程序更新 具体来说 这次崩溃似乎发生在升级到 Lol
  • 有没有原生 DLL 导出函数查看器? [复制]

    这个问题在这里已经有答案了 是否有免费的本机 Windows DLL 导出函数查看器 它显示函数名称及其参数列表 dumpbin从 Visual Studio 命令提示符处 dumpbin exports csp dll 输出示例 Micr

随机推荐

  • 段落中文本上方的位置跨度

    我尝试在文本上方放置一些文本 如下所示 在音乐中使用 Am E This is a new sentence G C This is another sentence 但我不想使用空格 目前我有这个 p position relative
  • ASP.NET Core 2 razor 页面中的文件上传

    我正在尝试在 asp net core 2 razor 页面中进行简单的文件上传 我有下面的代码 请认识到它是不完整的 当我在 VS2017 中运行时 我检查我的 FileUpload 对象 不幸的是它为空 我希望它不是 null 之外的东
  • 向量中元素的默认构造

    在阅读此问题的答案时question https stackoverflow com questions 877385 dynamically allocating and setting to zero an array of float
  • 单元测试文件 I/O 方法

    我对单元测试还比较陌生 我用 Ruby 编写了一个类 它接受一个文件 在该文件中搜索给定的正则表达式模式 替换它 然后将更改保存回文件 我希望能够为此方法编写单元测试 但我不知道如何去做 有人可以告诉我如何对处理文件 I O 的方法进行单元
  • THREE.js 几何图不出现

    接下来我在自定义几何体上加载图像映射 它代表上图中的棕色几何形状 var aqua ground geo new THREE Geometry var top0 new THREE Vector3 aqua ground geo x NEG
  • 如何在 jQuery 中使用循环自动绑定多个事件处理程序

    我正在开发一个模拟棋盘的简单应用程序 因此我有一张有 64 个方格的桌子 我想通过编写一个循环的函数来绑定每个方块的事件处理程序 而不是写出 64 次 编辑 请注意 我希望处理程序返回一个数值来指示单击了哪个 div 我不需要处理程序来返回
  • PushViewController 两次当我双击太快时

    当我调用将 ViewController 推送到详细聊天控制器 一对一聊天 时 我有以下代码 但是 如果我单击得太快 视图控制器将被推送两次 动画我看了两遍 谁能指出我错误在哪里 该代码来自 LBTA 的 Youtube 课程 Fireba
  • x86-64 上的 C++:何时在寄存器中传递和返回结构/类?

    假设 Linux 上的 x86 64 ABI 在 C 中的什么条件下 结构会传递给寄存器中的函数 还是传递给堆栈上的函数 在什么条件下它们会返回到寄存器中 答案会随着课程的变化而变化吗 如果有助于简化答案 您可以假设单个参数 返回值并且没有
  • 是否可以仅对facet_wrap 的各个方面进行重新排序,而不对基础因子级别进行重新排序?

    示例数据框 df lt data frame x rep 1 10 4 y rnorm 40 Case rep c B L BC R each 10 我可以使用以下方法在其自己的方面绘制每个时间序列 ggplot df aes x x y
  • 在清单中找不到以下权限:2 [flutter]

    我正在使用permission handler来获取位置许可 它总是说 在清单中找不到权限 即使我尝试过 flutter clean import package permission handler permission handler
  • 找不到文件错误 python [重复]

    这个问题在这里已经有答案了 import os import time torrent folder os listdir r C users chris desktop torrents for files in torrent fold
  • 任务异常长时间处于 WaitingToRun 状态

    我有一个程序可以处理并行运行的各种任务 单个任务充当各种管理器 确保在运行下一个任务之前满足某些条件 但是 我发现有时任务会处于 WaitingToRun 状态很长时间 下面是代码 mIsDisposed false mTasks new
  • 是否有一个完整的示例来将 sympy 中的数学表达式写入 Microsoft Word 文档?

    这可能是一个愚蠢的问题 但我很绝望 我是一名数学老师 我尝试生成数学测试 我为此尝试了 Python 并完成了一些工作 然而 我不是一个专业的程序员 所以我对 MathMl prettyprint 之类的东西迷失了方向 有谁可以为我提供一个
  • Python 中“in”的结合性?

    我正在制作一个Python解析器 这是really让我困惑 gt gt gt 1 in in a False gt gt gt 1 in in a TypeError in
  • 使用 except 处理 express-jwt 中的参数化路由

    给定以下路线 router get api members confirm id function req res next 如何指定要排除的路由 我努力了 app use api expressJwt secret config secr
  • Knockout.js 语法

    我是 Javascript MVC 框架 Knockout js 的初学者 来自传统的 Javascript 以及一些 jQuery 经验 我在理解学习 Knockout js 的语法时遇到困难 考虑以下陈述 风景 ul class fol
  • 如何使用bat脚本将命令表达式的结果存储在变量中?

    我有下面的命令来计算遵循该模式的所有目录20 dir b 20 find c 2 例如 如果我有以下目录 该命令将返回 6 20090901 20090902 20090903 20090904 20090905 20090906 如何将该
  • html2canvas 不显示子 div 中的图像

    我正在尝试使用 html2canvas 从 div 创建图像 Brief 我有一个图像 png 其中有一个透明区域 我有另一个图像 可以是 jpg 或 png 将被拖动 调整大小 使用a在上图的透明区域内看起来不错 辅助分区 我有一个辅助
  • 在闭包中解构元组的元组

    我可以轻松地解构元组的元组 let tt 2 3 4 let a b c tt b gt 3 我想在声明闭包时做同样的事情 例如我想我可以写 tt map a b c in Use b Xcode 抱怨 未命名参数必须使用空名称编写 我让它
  • 使用 Spark 加载由 --files 参数分发的共享库 (.so)

    我正在尝试在运行 Spark 作业时使用外部本机库 so 文件 首先 我使用提交文件 files争论 加载我正在使用的库System load SparkFiles get libname 创建后SparkContext 确保 确定Spar