Архитектура системы сбора и хранения метрик использования ресурсов Spark-приложений в кластерных системах обработки больших данных
Таблица 1 - Ключевые метрики мониторинга нагрузки Spark-приложения
Категория | Метрика | Описание |
Использование памяти | jvm.heap.used | Объем используемой heap-памяти JVM |
jvm.heap.committed | Объем выделенной heap-памяти JVM | |
jvm.heap.max | Максимально доступный объем heap-памяти JVM | |
jvm.non-heap.used | Объем используемой non-heap памяти JVM | |
jvm.non-heap.committed | Объем выделенной non-heap памяти JVM | |
jvm.non-heap.max | Максимально доступный объем non-heap памяти JVM | |
ExecutorMetrics.OnHeapStorageMemory | Используемая on-heap память для хранения данных | |
ExecutorMetrics.OffHeapStorageMemory | Используемая off-heap память для хранения данных | |
ExecutorMetrics.OnHeapExecutionMemory | Общий объем on-heap памяти для хранения | |
ExecutorMetrics.OffHeapExecutionMemory | Общий объем off-heap памяти для хранения | |
Spill | executor.memoryBytesSpilled.count | Объем данных, сброшенных из памяти на диск на уровне executor |
executor.diskBytesSpilled.count | Объем данных, сброшенных на диск на уровне executor | |
task.memoryBytesSpilled.count | Объем данных, сброшенных из памяти на диск на уровне задачи | |
task.diskBytesSpilled.count | Объем данных, сброшенных на диск на уровне задачи | |
Ввод/вывод | executor.filesystem.hdfs.largeRead_ops | Количество больших операций чтения данных executor из hdfs |
executor.filesystem.hdfs.read_bytes | Объем данных, прочитанных executor из hdfs | |
executor.filesystem.hdfs.read_ops | Количество операций чтения данных executor из hdfs | |
executor.filesystem.hdfs.write_bytes | Объем данных, записанных executor из hdfs | |
executor.filesystem.hdfs.write_ops | Количество операций записи данных executor из hdfs | |
task.outputMetrics.bytesWritten | Объем данных, записанных задачей | |
Задачи | task.duration | Продолжительность выполнения задачи |
task.jvmGCTime | Время на сборку мусора во время выполнения задачи | |
task.resultSize | Размер результата задачи | |
task.executorRunTime | Время выполнения задачи на executor | |
task.executorCpuTime | Время использования CPU задачей | |
task.peakExecutionMemory | Пиковое использование памяти задачей | |
Shuffle-чтение | shuffleReadMetrics.totalBlocksFetched | Количество блоков, полученных в shuffle-чтении |
shuffleReadMetrics.localBlocksFetched | Локальные блоки, полученные в shuffle-чтении | |
shuffleReadMetrics.remoteBlocksFetched | Удаленные блоки, полученные в shuffle-чтении | |
shuffleReadMetrics.totalBytesRead | Общий объем байт, прочитанных в shuffle-чтении | |
shuffleReadMetrics.localBytesRead | Объем байт, прочитанных локально в shuffle-чтении | |
shuffleReadMetrics.remoteBytesRead | Объем байт, прочитанных удаленно в shuffle-чтении | |
shuffleWriteMetrics.bytesWritten | Объем байт, записанных в shuffle-записи | |
shuffleWriteMetrics.recordsWritten | Количество записей, записанных в shuffle-записи | |
shuffleWriteMetrics.writeTime | Время записи в shuffle (в наносекундах) |
