接收 TimeoutException 的可能原因是什么:使用 Spark 时,Futures 在 [n 秒] 后超时 [重复]

2023-12-26

我正在开发 Spark SQL 程序,但收到以下异常:

16/11/07 15:58:25 ERROR yarn.ApplicationMaster: User class threw exception: java.util.concurrent.TimeoutException: Futures timed out after [3000 seconds]
java.util.concurrent.TimeoutException: Futures timed out after [3000 seconds]
    at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:219)
    at scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:223)
    at scala.concurrent.Await$$anonfun$result$1.apply(package.scala:190)
    at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53)
    at scala.concurrent.Await$.result(package.scala:190)
    at org.apache.spark.sql.execution.joins.BroadcastHashJoin.doExecute(BroadcastHashJoin.scala:107)
    at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$5.apply(SparkPlan.scala:132)
    at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$5.apply(SparkPlan.scala:130)
    at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:150)
    at org.apache.spark.sql.execution.SparkPlan.execute(SparkPlan.scala:130)
    at org.apache.spark.sql.execution.Project.doExecute(basicOperators.scala:46)
    at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$5.apply(SparkPlan.scala:132)
    at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$5.apply(SparkPlan.scala:130)
    at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:150)
    at org.apache.spark.sql.execution.SparkPlan.execute(SparkPlan.scala:130)
    at org.apache.spark.sql.execution.Union$$anonfun$doExecute$1.apply(basicOperators.scala:144)
    at org.apache.spark.sql.execution.Union$$anonfun$doExecute$1.apply(basicOperators.scala:144)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:245)
    at scala.collection.immutable.List.map(List.scala:285)
    at org.apache.spark.sql.execution.Union.doExecute(basicOperators.scala:144)
    at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$5.apply(SparkPlan.scala:132)
    at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$5.apply(SparkPlan.scala:130)
    at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:150)
    at org.apache.spark.sql.execution.SparkPlan.execute(SparkPlan.scala:130)
    at org.apache.spark.sql.execution.columnar.InMemoryRelation.buildBuffers(InMemoryColumnarTableScan.scala:129)
    at org.apache.spark.sql.execution.columnar.InMemoryRelation.<init>(InMemoryColumnarTableScan.scala:118)
    at org.apache.spark.sql.execution.columnar.InMemoryRelation$.apply(InMemoryColumnarTableScan.scala:41)
    at org.apache.spark.sql.execution.CacheManager$$anonfun$cacheQuery$1.apply(CacheManager.scala:93)
    at org.apache.spark.sql.execution.CacheManager.writeLock(CacheManager.scala:60)
    at org.apache.spark.sql.execution.CacheManager.cacheQuery(CacheManager.scala:84)
    at org.apache.spark.sql.DataFrame.persist(DataFrame.scala:1581)
    at org.apache.spark.sql.DataFrame.cache(DataFrame.scala:1590)
    at com.somecompany.ml.modeling.NewModel.getTrainingSet(FlowForNewModel.scala:56)
    at com.somecompany.ml.modeling.NewModel.generateArtifacts(FlowForNewModel.scala:32)
    at com.somecompany.ml.modeling.Flow$class.run(Flow.scala:52)
    at com.somecompany.ml.modeling.lowForNewModel.run(FlowForNewModel.scala:15)
    at com.somecompany.ml.Main$$anonfun$2.apply(Main.scala:54)
    at com.somecompany.ml.Main$$anonfun$2.apply(Main.scala:54)
    at scala.Option.getOrElse(Option.scala:121)
    at com.somecompany.ml.Main$.main(Main.scala:46)
    at com.somecompany.ml.Main.main(Main.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.spark.deploy.yarn.ApplicationMaster$$anon$2.run(ApplicationMaster.scala:542)
16/11/07 15:58:25 INFO yarn.ApplicationMaster: Final app status: FAILED, exitCode: 15, (reason: User class threw exception: java.util.concurrent.TimeoutException: Futures timed out after [3000 seconds])

我从堆栈跟踪中识别出的代码的最后一部分是com.somecompany.ml.modeling.NewModel.getTrainingSet(FlowForNewModel.scala:56)这让我想到了这一行:profilesDF.cache()在缓存之前,我在两个数据帧之间执行并集。我看到了关于在连接之前保留两个数据帧的答案here https://stackoverflow.com/questions/36290486/spark-job-restarted-after-showing-all-jobs-completed-and-then-fails-timeoutexce我仍然需要缓存联合数据帧,因为我在几个转换中使用它

我想知道什么可能导致抛出此异常? 搜索它让我找到了一个处理 rpc 超时异常或一些安全问题的链接,这不是我的问题 如果您对如何解决它有任何想法,我显然会很感激,但即使只是理解问题也会帮助我解决它

提前致谢


问题:我想知道什么可能导致抛出此异常?

Answer :

spark.sql.broadcastTimeout300 广播超时(以秒为单位) 广播连接中的等待时间 http://spark.apache.org/docs/latest/sql-programming-guide.html

spark.network.timeout120 秒 所有网络交互的默认超时。spark.network.timeout (spark.rpc.askTimeout), spark.sql.broadcastTimeout, spark.kryoserializer.buffer.max(如果您使用的是 kryo 序列化)等调整为大于默认值 为了处理复杂的查询。您可以从这些值开始,然后 根据您的 SQL 工作负载进行相应调整。

Note : 医生说 http://spark.apache.org/docs/latest/sql-programming-guide.html#other-configuration-options

以下选项(参见spark.sql。属性)也可用于调整查询执行的性能。随着更多优化的自动执行,这些选项可能会在未来版本中被弃用。*

另外,为了您更好地理解,您可以看到广播散列连接 https://github.com/jiadongy/Spark.SkewAdaptive/blob/a3429c5547153dbc2320456fc0df4edecf91d762/sql/core/src/main/scala/org/apache/spark/sql/execution/joins/BroadcastHashJoin.scala其中执行方法是上述堆栈跟踪的触发点。

protected override def doExecute(): RDD[Row] = {
    val broadcastRelation = Await.result(broadcastFuture, timeout)

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

接收 TimeoutException 的可能原因是什么:使用 Spark 时,Futures 在 [n 秒] 后超时 [重复] 的相关文章

随机推荐

  • 每 3 个 div 包裹在一个 div 中

    是否可以使用nth child使用选择器包装 3 个 div wrapAll 我似乎无法算出正确的方程式 so div div div div div div div div div div div div div div 变成 div d
  • 在适用于 Android 的 OpenGL ES 2.0 中激活/使用 GL_TEXTURE1

    我正在尝试使用 GL TEXTURE1 纹理单元来绘制一个简单的形状 我知道如何使用标准 GL TEXTURE0 绘制它 但是当更改它时 有些东西不起作用 我认为从下面的代码中 我只需更改以下内容 glActiveTexture GL TE
  • 如何在android中自动启动服务?

    在Android应用程序中 总是扩展Activity 入口是onCreate 所以看来用户必须选择应用程序并单击才能启动它 如果错误 请告诉我 抱歉 那么 如何实现一个无需用户点击启动应用程序而在后台运行的服务呢 使用 IntentRece
  • js-xlsx :写入 .xlsx 文件时保留单元格样式

    我已手动创建了一个 xlsx 文件 我已向某些行添加了不同的颜色 并且某些单元格具有自定义日期格式 我正在使用 js xlsx npm 模块从 xlsx 文件读取数据 在写回同一 xlsx 文件以更新某些单元格值时 所选颜色和日期格式会丢失
  • 如何为网站添加浏览器选项卡图标(favicon)?

    我一直在开发一个网站 我想在浏览器选项卡中添加一个小图标 我如何在 HTML 中执行此操作以及我需要将其放置在代码中的何处 例如标头 我有一个 png我想将其转换为图标的徽标文件 有关的 HTML 在浏览器选项卡上设置图像 https st
  • 如何创建一个持续监控应用程序使用信息的服务?

    手头的问题 我必须创建一个Service连续运行 该服务监控您手机上安装的 5 个应用程序 例如 5 个 Android 游戏 该服务需要获取以下信息 1 游戏被打开并运行了多少次 2 每场比赛的运行 时间 例如 假设我在我的应用程序中安装
  • 在选择中实现android Gmail平板电脑设计(箭头样式)

    我正在尝试构建一个平板电脑优化的应用程序 我想在选择中遵循相同风格的 gmail 平板电脑版本 选择右侧的箭头 我不知道如何获得相同的风格 有一个阴影和一个箭头可供选择 This is an image of gmail app Thank
  • 对非常大的文件进行 XSLT 转换

    我们使用 XSLT 生成数据报告 数据当前以 XML 文档的形式存储在 Oracle 中 不使用 XMLTYPE 而是普通的 CLOB 我们选择正确的 XML 文档并创建一个文档
  • Nestjs 中带有嵌套对象数组的类验证器

    我正在尝试验证 Nestjs 中的嵌套对象数组 它工作正常 但是 如果我发送非数组值 例如字符串或 null 则会收到错误 TypeError Cannot read property length of undefined 嵌套字段 Is
  • 使用 JSON 的 Django 多语言文本字段

    我最近问这个问题自定义 Django MultilingualTextField 模型字段 https stackoverflow com questions 16750509 custom django multilingualtextf
  • 在 select2 中使用 $(this)

    我正在尝试从输入的 html5 数据属性中读取一个集合 该集合被转换为 select2 以创建标签 当我有一个输入时 这是有效的 tags select2 width 220px tags tags data collection 但我想使
  • SWR 与 graphql-request 如何在 swr 中添加变量?

    我想向我的 swr 添加变量 它使用 graphql 请求获取 这是我的代码 import request from graphql request import useSWR from swr const fetcher query va
  • 从 HTTP get 请求中解析 XML

    我正在使用一个以这种格式返回 XML 的 API
  • sas 为数据步骤中的每个实例执行宏

    我有一个宏 可以在一组给定的时间范围内将数据插入表中 它循环遍历一系列 从 到 日期 存储在数据集中 并使用 proc sql insert 语句运行宏 在所有这些结束时检查数据时 我注意到新数据集中只有最后一个 从 到 期间的数据 这是我
  • 使用 json 传递关联数组:控制器中期望哪种类型?

    在客户端 我有一个关联数组 其中存储 Guid int 对 我使用 json 将数组传递到服务器 ajax url methodUrl type POST async false data values items dataType jso
  • 获取内容可编辑插入符位置

    我找到了大量关于如何进行跨浏览器的良好答案seta 中的插入符位置contentEditable元素 但没有关于如何get插入符号位置放在第一位 我想做的是知道 div 中的插入符号位置keyup 因此 当用户输入文本时 我可以随时知道插入
  • Hibernate 的两个配置文件的用途是什么?

    这是我当前的项目结构 pom xml src main resources hibernate cfg xml META INF persistence xml 我在两个文件中都有非常相似的配置参数 hibernate cfg xml an
  • 检测到不正确的 NSStringEncoding 值 0x0000(使用 ASIHTTPRequest)

    我在我的应用程序中使用 ASIHTTPRequst 但遇到了一些问题 但仅限于某些设备 在某些情况下 我收到以下错误 检测到不正确的 NSStringEncoding 值 0x0000 假设 NSASCIIStringEncoding 将在
  • NSString 中的字符编码

    我正在开发 iOS 应用程序 但有一个基本问题 我花了很多时间来解决它 但没有取得任何成功 我有一些像这样的 JSON htmlCode thead tr td class p Protected SBJsonParser jsonPars
  • 接收 TimeoutException 的可能原因是什么:使用 Spark 时,Futures 在 [n 秒] 后超时 [重复]

    这个问题在这里已经有答案了 我正在开发 Spark SQL 程序 但收到以下异常 16 11 07 15 58 25 ERROR yarn ApplicationMaster User class threw exception java