apache-spark - catch exceptionorg.apache.spark.SparkException:作业因阶段失败而中止
问题描述
我在生产中运行我的代码,它大部分时间都能成功运行,但有时它会失败并出现以下错误:
catch exceptionorg.apache.spark.SparkException: Job aborted due to stage failure: Task 14 in stage 9.1 failed 4 times, most recent failure: Lost task 14.3 in stage 9.1 (TID 3825, xxxprd0painod02.xxxprd.local): java.io.FileNotFoundException: /data03/hadoop/yarn/local/usercache/user/appcache/application_xxxxxxx012345_70120/blockmgr-97546ecd-567d-4451-91dd-762744aadc2b/1e/temp_shuffle_fb43319d-8cec-43e1-b7f8-cda30410d36c (No such file or directory)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at org.apache.spark.storage.DiskBlockObjectWriter.open(DiskBlockObjectWriter.scala:88)
at org.apache.spark.shuffle.sort.BypassMergeSortShuffleWriter.write(BypassMergeSortShuffleWriter.java:140)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:73)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:41)
at org.apache.spark.scheduler.Task.run(Task.scala:89)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:227)
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)
我尝试更改执行程序内存以确保我们有足够的内存但仍然面临同样的问题。
关于我们如何解决这个问题的任何想法?
谢谢,巴布
解决方案
通过查看错误消息,似乎存储在块中的数据/文件存在问题。尝试刷新元数据或尝试再次恢复文件,因为文件损坏可能会解决您的问题。如果无法解决问题,请发布您的代码。
它与内存无关。
推荐阅读
- swift - 有没有办法在 watchOS 中使用`useProtocolCachePolicy`?
- react-native - 如何检测震动事件?我研究了反应原生震动,但我注意到它只适用于物理设备(我正在使用 xcode 进行 iphone 测试)
- html - 导航栏上的两个菜单
- acumatica - 新的 Acuminator 错误
- java - 是否可以在android中合并未知数量的firestore查询?
- python - 如何使用 plt.rcParams 将 y 限制设置为零。(绘制 Pandas df 并将图像保存到磁盘)
- maven - 工件可在
但不在 - sql-server - VBA:日期从 Excel 导出到 SQL Server:SQL Server 不存在或访问被拒绝
- php - 如何正确读取 JSON POST 数据?
- java - 如何将使用 PendingIntent 发送的 SMS 消息的数据传递给 BroadcastReciever?