2016-11-02 6 views
3

Я пытаюсь понять, что различные метрики, которые подталкивают Потоковые выходы означают, и я немного запутался в чем разница между Временем обработкой, Total Delay и обработки Задержка последней партии?Спарка Streaming Время обработки против Total Delay против задержки обработки

Я посмотрел на Спарк Streaming руководство, которое упоминает Время обработки в качестве ключевого показателя для выяснения, если система отстает, но в других местах, таких как "Pro Спарк Streaming: Дзен Real-Time Analytics Использование Apache Spark "говорят об использовании Общая задержка и Задержка обработки. Мне не удалось найти документацию, в которой перечислены все показатели, созданные Spark Streaming, с объяснением, что означает каждый из них.

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

ответ

6

Давайте разложим каждую метрику. Для этого, давайте определим основные приложения потокового который считывает партию при заданном 4 секундном интервале от некоторого произвольного источника, и вычисляет кол классические слова:

inputDStream.flatMap(line => line.split(" ")) 
      .map(word => (word, 1)) 
      .reduceByKey(_ + _) 
      .saveAsTextFile("hdfs://...") 
  • Время обработки: Время, необходимое для вычисления данной партии для всех ее заданий, от конца до конца. В нашем случае это означает одно задание, начинающееся с flatMap и заканчивающееся на saveAsTextFile, и предполагает в качестве предпосылки, что задание было отправлено.

  • Запланированная задержка: Время, затрачиваемое планировщиком Spark Streaming для отправки заданий партии. Как это вычисляется? Как мы уже говорили, наша партия читается из источника каждые 4 секунды. Теперь давайте предположим, что данная партия заняла 8 секунд для вычисления. Это означает, что мы теперь отстаем 8 - 4 = 4 секунд, тем самым делая задержку планирования 4 секунды.

  • Общая задержка: Это Scheduling Delay + Processing Time. Следуя тому же примеру, если мы отстаем на 4 секунды, это означает, что наша задержка планирования составляет 4 секунды, а следующая партия занимает еще 8 секунд для вычисления, это означает, что общая задержка теперь составляет 8 + 4 = 12 секунд.

Живой пример из рабочего приложения Streaming:

Streaming application

Мы видим, что:

  • Дно работа занял 11 секунд, чтобы обработать. Итак, теперь следующей задержкой планирования пакетов является 11 - 4 = 7 секунд.
  • Если мы посмотрим на вторую строку снизу, мы увидим, что задержка планирования + время обработки = общая задержка, в этом случае (округление от 0,9 до 1) 7 + 1 = 8.
+1

Спасибо за исчерпывающий ответ, именно то, что я искал. – Zak

+0

@ Zak Вы приветствуете.Рад, что это помогло. –

+0

@Yuval Есть ли способ, которым я могу получить такие показатели, как общая память, используемая приложением до сих пор, нет. используемых контейнеров и т. д., чтобы я мог сравнивать искровые потоки с другими инструментами обработки в реальном времени. – JSR29

 Смежные вопросы

  • Нет связанных вопросов^_^