2015-10-28 6 views
1

У нас есть простое искрообразование, потоковое событие от kafka через искру и сохранение этого в redis.Kafka - Spark прямой поток не работает

Первоначально мы используем Receiver-based Approach, который реплицирует партии в HDFS и начинает обработку впоследствии. Этот подход не был таким стабильным, как мы, (мы получили много трафика на наших машинах), поэтому мы переключились на Direct Approach (No Receivers) внутри искрового потока.

Что меня смущает 0: auto.offset.reset параметр, упомянутый в документации. Когда работа потерпела неудачу или световой поток погас, мы увидим, что потоковые задания улавливаются, обрабатывая большое количество событий, а затем стабилизируя сверхурочные.

При втором подходе мы не видим такое поведение больше, и мы не уверены, если искра потокового действительно догоняет или только начиная с auto.offset.resetlatest.

Является ли latest разумным по умолчанию при отказоустойчивости и действительно ли потоковое задание действительно правильно выполняется при перезагрузке/нарушении мастер-процесса?

Спасибо, MUKI

ответ

2

Что делать, когда нет никакого начального смещения в Zookeeper или если смещение находится вне диапазона:

  • маленький: автоматический сброс смещения наименьшему смещение
  • наибольшее: автоматически сбрасывает смещение на самое большое смещение
  • все остальное: исключить исключение для потребителя. Если это значение установлено наибольшим, потребитель может потерять некоторые сообщения, когда количество разделов , для тем, на которые оно подписано, изменяется на брокере. Для предотвращения потери данных во время добавления раздела, установите auto.offset.reset в маленького

Этот вариант имеет место только тогда, когда вы запускаете свою работу первый раз или когда некоторые сообщения истекают и последние зафиксированное смещение в ваш потребитель больше не существует.

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