Как сделать так, чтобы спарк-структурированный поток обрабатывал все данные в kafka - PullRequest
0 голосов
/ 29 апреля 2020

Я разработал искровое структурированное потоковое приложение, которое считывает данные из топологии Kafka c, агрегирует данные и затем выводит их на S3.

Теперь я пытаюсь найти наиболее подходящие аппаратные ресурсы необходимо для правильной работы приложения и минимизации затрат. Находя очень мало информации о том, как рассчитать правильный размер искрового кластера, зная размер входного сигнала, я выбрал стратегию проб и ошибок. Я развертываю приложения с минимальными ресурсами и добавляю ресурсы, пока приложение spark не будет работать стабильно.

При этом, как я могу убедиться, что приложение spark способно обрабатывать все данные на входе Kafka, а что за приложение не отстает? Есть ли специфика c metri c для поиска? Время выполнения задания и время обработки триггера?

Спасибо за ваши ответы!

1 Ответ

0 голосов
/ 29 апреля 2020

трек кафка, потребительское отставание. Должна быть создана группа потребителей для вашего потокового задания Spark.

> bin/kafka-consumer-groups.sh --bootstrap-server broker1:9092 --describe --group test-consumer-group

  TOPIC                          PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG        CONSUMER-ID                                       HOST                           CLIENT-ID
  test-foo                       0          1               3               2          consumer-1-a5d61779-4d04-4c50-a6d6-fb35d942642d   /127.0.0.1                     consumer-1

Если у вас есть метри c инструменты для сохранения и построения графиков, такие как Prometheus и Grafhana

  1. Сохраните все метрики Kafka включая отставание потребителя Kafka от прометея / графита
  2. Используйте Grafana для запроса прометея и нанесите их на график
...