Executor内存的大小,很多时候直接决定了Spark作业的性能,而且跟常见的JVM OOM异常,也有直接的关联。 参数调优建议:每个Executor进程的内存设置4G ~ 8G较为合适。但是这只是一个参考值,具体的设置还是得根据不同部门的资源队列来定。可以看看团队的资源队列的最大内存限制是多少,num-executors乘以executor-memory,就代表...
Shuffle spill (memory)is the size of the deserialized form of the shuffled data in memory. Shuffle spill (disk)is the size of the serialized form of the data on disk. 所有任务的汇总指标都以表格和时间线的形式表示。 任务反序列化时间。 任务的持续时间。 GC 时间是 JVM 垃圾收集的总时间。 结...
Peak Pool Memory Direct / Mapped --直接缓冲池和映射缓冲池峰值内存 ## 什么是直接缓冲池和映射缓冲池? 在Java中,有两种类型的缓冲池:直接缓冲池和映射缓冲池。 直接缓冲池 1)从堆外内存分配,不受JVM管理 2)占用内存较多 3)相比从JVM复制数据到本地,性能更高 映射缓冲池 1)将文件一部分映射到内存空间,可...
在spark3.x中,可以通过metrics中的peak JVMHeapMemory、peak JVMOffHeapMemory来确定executor需要的峰值内存;在spark2.x版本可以通过配置spark.metrics.conf上报JvmSource至第三方存储,从而进一步分析executor内存信息。(在on yarn的情况下,可以通过NodaManager日志来查看container的physical memory占用记录,该方法会有一定误差...
默认情况下Off-heap模式的内存并不启用,我们可以通过 spark.memory.offHeap.enabled 参数开启,并由 spark.memory.offHeap.size 指定堆外内存的大小,单位是字节(占用的空间划归 JVM OffHeap 内存)。 如果堆外内存被启用,那么 Executor 内将同时存在堆内和堆外内存,两者的使用互补影响,这个时候 Executor 中的 Executi...
Peak Execution Memory执行时内存使用的峰值,这个内存是在一些内部的数据结构创建时候有关例如shuffles, aggregations and joins阶段,这个结果是在所有task执行结果中获取的一个大概的峰值,就表示计算过程中疯狂new对象的时候导致某次内存申请激增,这种情况会导致毛刺现象。
stageSubmitted.stageInfo.taskMetrics.jvmGCTime stageSubmitted.stageInfo.taskMetrics.memoryBytesSpilled stageSubmitted.stageInfo.taskMetrics.peakExecutionMemory stageSubmitted.stageInfo.taskMetrics.resultSerializationTime stageSubmitted.stageInfo.taskMetrics.resultSize ...
$ spark-shell--num-executors12--executor-cores4--executor-memory4g 下一步是使用 Spark Dataframe API 读取 Parquet 中的文件,并将生成的 DataFrame 注册为 Spark 中的临时视图。 spark.read.format("parquet").load("TPCDS/tpcds_1500/store_sales").createOrReplaceTempView("store_sales") ...
JvmGcTimelongJVM がガベージ コレクションに費やした時間。 Killed[bool]タスクが強制終了されたかどうかを示すブール値。 LaunchTimeDATETIMEタスクが起動された時刻 (UTC)。 MemoryBytesSpilledlongスピルされたメモリのバイト数。 NumUpdatedBlockStatuseslongタスク中に更新されたブロックの状態の数...
If a java proc write a file to the disk(not in Direct_IO mode), the os will cache the file in memory as page cache, I'm curious if the page cache is a part of JVM offheap memory? The background is I'm running a scala Spark job in K8S . It get OOM killed frequently even ...