java - spark stage time 代表什么,executor task gc time 代表什么?
问题描述
我在这里有三个问题。
- 第一个是我的火花工作只包含一个阶段,工作时间/阶段时间如下图所示。根据我的见解,工作时间是墙时间,而这里的舞台时间几乎是工作时间的一半,它代表什么。
备注
这项工作的作用:读取 hbase -> 执行小进程 -> 在 hdfs 上保存为 parquet
数据大小:~ 40T
执行程序数量:180
执行程序堆内存:16G
执行程序开销内存:4G
执行程序 jvm:oracle 64 位
执行程序 jvm 参数:-Xms16g -Xmx16g -XX:+UseG1GC -XX:G1HeapRegionSize=32m -XX:+UseCompressedOops
- executor的gc太不正常了,我正在调查,下面的信息是我发现的。我想知道如何优化 JVM args,似乎完整的 gc 需要很长时间(大于 20 秒)。
Heap Mem Usage G1 Eden Space G1 Survivor Space G1 Old Space GC 统计数据
G1 Young Generation 6 分钟(1,034 个收集)
G1 Old Generation 22 分钟(46 个收集)
让我们看看堆是什么样子(我转储了一个堆)
抱歉这里没有图片,我昨天用 Eclipse Memory Analysis 分析它时没有保存它,但我们可以确定它们是三个大的 Hash Map Object,几乎消耗10G内存(这三个是静态var,不能free-ed,这不是bug!真的需要这三个大hash map。)
谢谢。
解决方案
推荐阅读
- google-chrome - 向 chrome.downloads.download api 添加额外的标头
- java - 在多个服务器地址上运行 Spring Boot 应用程序
- reactjs - 如何使链接与 card-img-overlay React 一起使用
- groovy - Camunda 通过内联脚本在控制台上打印
- reactjs - 如何在 IIS 上使用 ASP .Net Web API 部署 React 应用程序?
- python - Azure python SDK 在虚拟机中运行 powershell 脚本
- c# - 使用 MailSystem.Net 的带有附件符号的 S/Mime
- android-studio - 在 vscode 中运行颤振应用程序并得到此错误无法确定任务':app:compileDebugJavaWithJavac'的依赖关系
- google-chrome-extension - 配置 chrome 扩展而不制作自定义版本
- reactjs - 在 React 的上下文中传递带参数的函数