问个 Spark 的问题,为什么 stage 没跑完,整个 job 就已经完了

2019-02-02 09:47:24 +08:00
 qqq8724

左上已经提示 SUCCEEDED 可是 stage 没跑完,这是什么情况

结果也已经产出了,目录中有_SUCCESS,但现在看到这个不敢确定结果完整性

2321 次点击
所在节点    问与答
7 条回复
qqq8724
2019-02-02 09:48:17 +08:00
@kex0916 大神求助啊
kex0916
2019-02-02 11:34:35 +08:00
你点有 failed 的 stages,应该能看到失败的原因,或者去查看 executor 的日志应该也能找到失败原因
数据准确性这块你是保存文本数据,写出操作不是幂等的话在出错的时候是保证不了有且仅有一次的
qqq8724
2019-02-02 12:06:30 +08:00
[![k8e2H1.png]( https://s2.ax1x.com/2019/02/02/k8e2H1.png)]( https://imgchr.com/i/k8e2H1) 原因都是这个样子的 我是担心它 stage 没跑完 结果量会不会少 最后一句话没太懂
@kex0916
kex0916
2019-02-02 13:57:31 +08:00
看样子是 task 提交被拒绝了,你有开启 spark task 推测执行吗,具体的原因要看一下 driver 的日志
如果被拒绝的原因是因为已经执行完成的话对数据没有影响,如果是因为已经标记失败的话那可能对数据有影响,如果 task 重试成功可能会重复,如果重试失败可能丢数据
qqq8724
2019-02-02 14:57:23 +08:00
@kex0916 我没有加那个参数 日志输出我设置 WARN
最后一条是 java.io.IOException: Broken pipe
其他:
19/02/02 02:04:25 ERROR scheduler.LiveListenerBus: SparkListenerBus has already stopped! Dropping event SparkListenerBlockUpdated(BlockUpdatedInfo(BlockManagerId(3, zzcywhadoop07, 58138),broadcast_10_piece0,StorageLevel(false, false, false, false, 1),0,0,0))

19/02/01 23:52:28 WARN spark.ExecutorAllocationManager: No stages are running, but numRunningTasks != 0

我找了几个不常见的报错

当时指定 300 个分区 结果也确实是 300 个
kex0916
2019-02-02 15:35:22 +08:00
你要找应用真正停止的原因,是正常执行完还是遇到了错误
ERROR scheduler.LiveListenerBus: SparkListenerBus has already stopped! 这个应该是 SparkContext 停止引起的,java.io.IOException: Broken pipe 这个要看看调用栈
数据的话你可以重新跑这个任务吗,计算一下条数什么的比较一下
qqq8724
2019-02-02 17:11:39 +08:00
@kex0916 感谢回答 因为这个重跑太费时间和空间了 所以尽量不重跑 年后我重跑试试吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/532581

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX