2016-09-20 4 views
0

Я заметил, что примеры искрообразования также имеют код для контрольной точки. Мой вопрос: насколько важна эта контрольная точка. Если его там для отказоустойчивости, как часто возникают ошибки в таких потоковых приложениях?Требуется ли контрольная точка в искровом потоке

+2

Насколько важна контрольная точка, зависит только от ваших требований и бизнес-логики. Если вы хотите выполнять операции с сохранением состояния, вы не можете принять потерю данных, это обязательно, в противном случае это необязательно. Если у вас есть несколько отказов узлов, это маловероятно (это не значит, что вы не должны готовиться к нему), если у вас есть тысячи, вы можете ожидать сбоев на ежедневной основе. И там проблемы с программным обеспечением. – zero323

ответ

2

Все зависит от вашего использования. Предположим, что если вы выполняете потоковое задание, которое просто считывает данные из Kafka и подсчитывает количество записей. Что бы вы сделали, если ваше приложение вылетает через год или около того?

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

Или, если все, что вы просто делаете, имея приложение потоковой передачи, который только Считывает-Messages-С-Кафки >>> Tranform >>> Вставьте к а-базы данных, мне не нужно беспокоиться о моем сбой приложения. Даже если он разбился, я могу просто возобновить свое приложение без потери данных.

Примечание. Проверка указывает процесс, который сохраняет текущее состояние искрового приложения.

Находясь на частоте отказоустойчивости, вы почти никогда не можете предсказать простоя. В компаниях,

  • Там может быть перерыв в подаче энергии
  • регулярные охранение/модернизация кластера

надеюсь, что это помогает.

1

Есть два случая:

  1. Вы делаете с состоянием операции, такие как updateStateByKey, то вы должны использовать контрольных точек - каждое состояние сохраняется. Не устанавливая каталог контрольных точек, будет выбрано исключение.
  2. Вы выполняете только оконные операции - тогда да, вы можете отключить контрольную точку. Однако я настоятельно рекомендую установить каталог контрольной точки.

Когда водитель убит, вы потеряете все данные и информацию о ходе работы. Checkpointing помогает вам восстанавливать приложения из таких ситуаций.

Является ли отказ нормальной ситуацией? Конечно! Представьте, что у вас есть большой кластер, множество машин, множество компонентов на этих машинах. Если один из этих компонентов выходит из строя, ваше приложение также потерпит неудачу. Когда соединение с драйвером будет потеряно, ваше приложение завершится с ошибкой. С помощью checkpoiting вы можете снова запустить приложение и восстановить состояние.

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