-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Executor运行一段时间以后Streaming程序失败 #17
Comments
通常解决方法是几种:
不过还是建议先看下 Executor 打出来的具体日志,看看需要加资源还是说能够容忍部分数据损失,再酌情选择解决方法。可在本帖后随时反馈;希望有帮助! |
上面提到的 try-catch 代码: val inputDStream = ssc.fileStream("")
inputDStream.foreachRDD(rdd => {
try {
// do something
} catch {
case e => e.printStackTrace()
}
}) |
@lw-lin try-catch的代码还没有试过,测试了下MEMORY_AND_DISK_2,性能比MEMORY_AND_DISK差很多,目前测试业务下数据处理性能差不多是这样的关系 :4 * MEMORY_AND_DISK_2 = MEMORY_AND_DISK 。 Executor被kill的原因,是Active Job队列里面任务开始积压,处理时延增加。Job的提交周期是1秒,由于CPU平均使用率到95%左右,Receiver接收速率不变,每个Job处理时延增加到了5到10s,目前Job的提交Interval能动态指定吗? |
现在有几个 receiver?几个 Executor、每个 Executor 几个 core? block interval 是多大?batch interval(即 batch duration) 呢?每个 batch 处理多少 records? |
每个Block差不多6M左右,batch duration: 1s, 每个batch处理的events没有注意,应该是12000多个吧。 测试了下try-catch,可以解决Executor被kill的情况👍 |
@tsface |
@lw-lin
问题:
谢谢! |
@tsface |
@lw-lin |
@tsface 有没有调用过 StreamingContext#remember ? |
@keepsimplefocus |
@tsface 我怀疑和 spark streaming 的清理机制有关。在 jobSet 完成和 checkpoint 的时候都会触发清理操作,这个时候可能会把需要用到的 blocks 删掉。http://www.jianshu.com/p/5e096df2618d 可能会给你一些启发,希望有帮助~ |
@tsface 请问,你的问题解决了吗?我也遇到了相同的问题 |
@tsface |
@proflin |
@keepsimplefocus |
请问这个问题解决了吗,我也遇到了类似的问题 |
你好 @lw-lin :
我们在使用Streaming的时候,发现Executor运行一段时间(1小时左右)后,整个程序就会失败,查看CPU,内存,网络,GC情况,都处于安全状态。
error:
java.lang.Exception: Could not compute split, block input-0-1416573258200 not found
最开始的Storage策略配置的是Memory_ONLY,当数据量激增的时候,会报这个错误,所以调整Storage的策略是Memory_And_DIsk,但是程序运行一段时间还是会报这个错误。同时,会抛出Executor和ReceiverTracker的通信超时(120s)。
请问这个有什么好的排查方法吗,谢谢。
ps:部署模式yarn-cluster
The text was updated successfully, but these errors were encountered: