程序执行期间Apache-Spark中的超时异常

亚西尔

我正在MAC中运行Bash脚本。该脚本多次调用用Scala语言编写的spark方法。我目前正在尝试使用for循环将此Spark方法调用100,000次。

运行少量的迭代(约3000次迭代)后,代码将退出,并带有以下异常。

org.apache.spark.rpc.RpcTimeoutException: Futures timed out after [10 seconds]. This timeout is controlled by spark.executor.heartbeatInterval
    at org.apache.spark.rpc.RpcTimeout.org$apache$spark$rpc$RpcTimeout$$createRpcTimeoutException(RpcTimeout.scala:48)
    at org.apache.spark.rpc.RpcTimeout$$anonfun$addMessageIfTimeout$1.applyOrElse(RpcTimeout.scala:63)
    at org.apache.spark.rpc.RpcTimeout$$anonfun$addMessageIfTimeout$1.applyOrElse(RpcTimeout.scala:59)
    at scala.PartialFunction$OrElse.apply(PartialFunction.scala:167)
    at org.apache.spark.rpc.RpcTimeout.awaitResult(RpcTimeout.scala:83)
    at org.apache.spark.rpc.RpcEndpointRef.askWithRetry(RpcEndpointRef.scala:102)
    at org.apache.spark.executor.Executor.org$apache$spark$executor$Executor$$reportHeartBeat(Executor.scala:518)
    at org.apache.spark.executor.Executor$$anon$1$$anonfun$run$1.apply$mcV$sp(Executor.scala:547)
    at org.apache.spark.executor.Executor$$anon$1$$anonfun$run$1.apply(Executor.scala:547)
    at org.apache.spark.executor.Executor$$anon$1$$anonfun$run$1.apply(Executor.scala:547)
    at org.apache.spark.util.Utils$.logUncaughtExceptions(Utils.scala:1877)
    at org.apache.spark.executor.Executor$$anon$1.run(Executor.scala:547)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)

Exception in thread "dag-scheduler-event-loop" 16/11/22 13:37:32 WARN NioEventLoop: Unexpected exception in the selector loop.
java.lang.OutOfMemoryError: Java heap space
    at io.netty.util.internal.MpscLinkedQueue.offer(MpscLinkedQueue.java:126)
    at io.netty.util.internal.MpscLinkedQueue.add(MpscLinkedQueue.java:221)
    at io.netty.util.concurrent.SingleThreadEventExecutor.fetchFromScheduledTaskQueue(SingleThreadEventExecutor.java:259)
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:346)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357)
    at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111)
    at java.lang.Thread.run(Thread.java:745)
java.lang.OutOfMemoryError: Java heap space
    at java.util.regex.Pattern.compile(Pattern.java:1047)
    at java.lang.String.replace(String.java:2180)
    at org.apache.spark.util.Utils$.getFormattedClassName(Utils.scala:1728)
    at org.apache.spark.storage.RDDInfo$$anonfun$1.apply(RDDInfo.scala:57)
    at org.apache.spark.storage.RDDInfo$$anonfun$1.apply(RDDInfo.scala:57)
    at scala.Option.getOrElse(Option.scala:121)
    at org.apache.spark.storage.RDDInfo$.fromRdd(RDDInfo.scala:57)
    at org.apache.spark.scheduler.StageInfo$$anonfun$1.apply(StageInfo.scala:87)

有人可以帮忙,是由于大量调用spark方法导致此错误吗?

拉姆·加迪亚拉姆

RpcTimeoutException.. so spark.network.timeoutspark.rpc.askTimeout)可以使用大于默认值的值进行调整,以处理复杂的工作负载。您可以从这些值开始,然后根据您的工作量进行调整。请查看最新

spark.network.timeout120s所有网络交互的默认超时。如果未配置,则此配置将代替spark.core.connection.ack.wait.timeout,spark.storage.blockManagerSlaveTimeoutMs,spark.shuffle.io.connectionTimeout,spark.rpc.askTimeout或spark.rpc.lookupTimeout 。

还可以考虑增加执行程序的内存,即spark.executor.memory,最重要的事情是查看您的代码,以检查其是否适合进一步优化。

解决方案:值600基于要求

set by SparkConf: conf.set("spark.network.timeout", "600s")
set by spark-defaults.conf: spark.network.timeout 600s
set when calling spark-submit: --conf spark.network.timeout=600s

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用自制程序将Apache Spark从1.5.2升级到1.6.0导致执行期间权限被拒绝错误

可调用执行期间的异常

ios 10应用程序在执行期间在内存中包含敏感数据

在程序执行期间将只读数据库表保存在本地变量中

在Theano中执行期间选择GPU

执行期间代码中的“ this”与“ this”不匹配

函数执行期间SOAP客户端超时

Hyperopt设置超时并在执行期间修改空间

转到异常“信号在CGO执行期间到达”

从Internet信息服务执行期间发生异常

合同约束失败...流程执行期间的corda异常

如何在后台工作者中运行的应用程序执行期间获取进度条以更新

执行期间在 DAG 中的每一步缓存

执行期间增加JMeter中的线程数

Shellcode中的地址在执行期间发生更改

在Lisp中执行期间的函数重新定义

在BASH脚本执行期间,到远程服务器的SSH超时

计算多处理中执行的任务总数执行期间的池

查询失败错误:查询执行期间超出了资源:无法在分配的内存中执行查询

Junit5验证执行期间是否引发了异常

如何在Flink作业执行期间记录未捕获的异常

当前Web请求的执行期间生成了未处理的异常。[HttpAntiForgeryException]

在 EMR 执行期间是什么导致 java.lang.NoClassDefFoundError 异常?

retrofit.RetrofitError请求网络执行期间发生异常:null

如何在 python 脚本的批处理文件执行期间捕获任何异常?

Ansible剧本导致任务执行期间发生一半的异常

当前Web请求的执行期间发生未处理的异常。ASP.NET

如何在 Kafka Streams 应用程序中处理偏移提交期间的超时异常

保留应用执行期间生成的随机数,直到应用在Swift中退出