首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spark作业之间的隐形延迟

Spark作业之间的隐形延迟
EN

Stack Overflow用户
提问于 2021-07-20 19:42:43
回答 1查看 75关注 0票数 1

对于应用程序,有4个主要操作(jdbc写入)和几个计数,总共需要4-5分钟才能完成。但应用程序的总正常运行时间约为12-13分钟。

我看到某些作业在ThreadPoolExecutor.java : 1149上按名称运行。就在此作业在Spark UI上反映之前,出现了看不见的长时间延迟。

我想知道这些延误的可能原因是什么。我的应用程序正在读取8-10个CSV文件,5-6个视图。joins的数量约为59个,具有agg(sum)的groupBy很少,并且有3个联合。

我不能在DEV/UAT环境中重现这个问题,因为数据不是那么多。它在我得到应用程序的生产环境中。由我的经理运行执行。

如果有人在他们的工作中遇到过这样的延迟,请分享你的经验,这可能是导致这种情况的潜在原因,目前我正在围绕联合工作,即缓存相关的数据帧和调用计数,以便在即将到来的联合中获得缓存的好处(如果联合是延迟的原因,还有待测试)

类似地,我尝试使用缓存和计数来打破转换的长链,以打破长的谱系。时间从最初的18分钟减少到12分钟,但看不见的延迟问题仍然存在。

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2021-07-20 20:32:30

我假设您的spark作业之间没有CPU或IO繁重的代码。所以它真的会产生火花,99%是因为QueryPlaning延迟。您可以使用spark.listenerManager.register(QueryExecutionListener)来检查查询规划性能的不同指标。

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

https://stackoverflow.com/questions/68454264

复制
相关文章

相似问题

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