Из чего состоит executorRunTime в Spark? - PullRequest
0 голосов
/ 12 марта 2019

В настоящее время работая над Spark, я собрал некоторые метрики производительности с помощью пользовательского API слушателя Spark для целей анализа.Я попытался составить столбчатую диаграмму с накоплением, которая показывает процент времени, которое исполнитель пропускает, выполняя задание, перетасовывая или останавливая сборку мусора для трех различных алгоритмов машинного обучения.Вот скриншот того, что я нашел:

execution, garbage-collection, serialization and shuffling rates in Spark MlLib

Что привлекло мое внимание сразу после появления сюжета, так это то, что показатели неверны.Вы можете видеть, что оно выходит за пределы значения 1 для алгоритма kmeans и меньше 0,8 для персептрона.

Вот как я вычислил показатели:

execution['cpuRate'] = execution['executorCpuTime'] / execution['executorRunTime']
execution['serRate'] = execution['resultSerializationTime'] / execution['executorRunTime']
execution['gcRate'] = execution['jvmGCTime'] / execution['executorRunTime']
execution['shuffleFetchRate'] = execution['shuffleFetchWaitTime'] / execution['executorRunTime']
execution['shuffleWriteRate'] = execution['shuffleWriteTime'] / execution['executorRunTime']

execution = execution[['cpuRate', 'serRate', 'gcRate', 'shuffleFetchRate', 'shuffleWriteRate']]

execution.plot.bar(stacked=True)

Я использую библиотеку Pandas, а выполнение - это кадр данных, содержащий усредненные метрики.Конечно, я предполагаю, что executorRunTime - это сумма других основных метрик, но она оказывается ложной.

Что означают эти времена и как они соотносятся?Я имею в виду: из чего состоит executorRunTime, если не все другие метрики, указанные выше?

Спасибо

...