首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SparkR org.apache.spark.SparkException: r员工意外退出

SparkR org.apache.spark.SparkException: r员工意外退出
EN

Stack Overflow用户
提问于 2018-05-02 11:53:50
回答 1查看 441关注 0票数 1

我正在尝试执行一个SparkR gapply,本质上,当我试图使用我的输入文件仅限于300 K行运行时,它可以工作,但是扩展到120万行时,我会在许多执行器任务中得到以下stderr中的重复异常--大约70%的任务完成,而其他任务则失败或终止。失败的输出具有相同的错误输出:

代码语言:javascript
复制
org.apache.spark.SparkException: R worker exited unexpectedly (cranshed)
    at org.apache.spark.api.r.RRunner.org$apache$spark$api$r$RRunner$$read(RRunner.scala:240)
    at org.apache.spark.api.r.RRunner$$anon$1.next(RRunner.scala:91)
    at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
    at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
    at org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIterator.agg_doAggregateWithKeys$(Unknown Source)
    at org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIterator.processNext(Unknown Source)
    at org.apache.spark.sql.execution.BufferedRowIterator.hasNext(BufferedRowIterator.java:43)
    at org.apache.spark.sql.execution.WholeStageCodegenExec$$anonfun$8$$anon$1.hasNext(WholeStageCodegenExec.scala:395)
    at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:408)
    at org.apache.spark.shuffle.sort.BypassMergeSortShuffleWriter.write(BypassMergeSortShuffleWriter.java:125)
    at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:96)
    at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:53)
    at org.apache.spark.scheduler.Task.run(Task.scala:108)
    at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:346)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.EOFException
    at java.io.DataInputStream.readInt(DataInputStream.java:392)
    at org.apache.spark.api.r.RRunner.org$apache$spark$api$r$RRunner$$read(RRunner.scala:212)
    ... 16 more

除了分配更多内存之外,还有哪些调优参数需要考虑?我相信SparkR不像PySpark或Scala那样被广泛使用,有时它们的调优参数可能会有所不同,所以这里的任何帮助都会受到极大的赞赏。

这是在Databricks/AWS集群上运行的--20个工作节点,30.5GB内存,每个核心4个。

在我们的用例中,gapply函数在最大的10行数据中运行,在最大20列处将其拆分为4R数据,然后使用R包NlcOptim,quadprog将其输入到线性优化求解器中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-08 13:00:36

使用.cache()并再次尝试解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50134076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档