Увеличьте количество разделов в Dstream, чтобы они были больше, чем разделы Kafka в прямом подходе

Это 32 перегородки Kafka и 32 потребителя по прямому подходу. Но обработка данных для 32 потребителей идет медленнее, чем скорость Кафки (в 1,5 раза), что создает отставание данных в Кафке.

Хочу увеличить количество разделов для Dstream, полученных каждым потребителем.

Я хотел бы, чтобы решение было чем-то вроде увеличения разделов на потребителях, а не увеличения разделов в Кафке.

2 ответа

Решение

В подходе с прямым потоком на максимуме вы можете иметь #consumers = #partitions. Kafka не позволяет использовать более одного потребителя на один раздел для group.id. Кстати, вы просите больше разделов на потребителя? это не поможет, так как ваши потребители уже работают на полную мощность и все еще недостаточно.

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

  1. Увеличьте количество разделов - хотя вы не хотите этого делать, тем не менее, это самый простой подход. Иногда платформе просто нужно больше оборудования.

  2. Оптимизируйте обработку на стороне потребителя - проверьте возможность дедупликации записи перед обработкой, уменьшите дисковый ввод-вывод, методы развертывания цикла и т. Д., Чтобы сократить время, затрачиваемое потребителями.

  3. (более высокая сложность) Контролируемое распределение данных - часто обнаруживается, что некоторые разделы могут обрабатывать лучше, чем другие. Возможно, стоит посмотреть, если это так на вашей платформе. Политика распространения данных Kafka имеет некоторые предпочтения (а также ключ сообщения), которые часто вызывают неравномерную загрузку внутри кластера: https://www.cloudera.com/documentation/kafka/latest/topics/kafka_performance.html

Предполагая, что у вас достаточно аппаратных ресурсов, выделенных потребителю, вы можете проверить ниже параметр

spark.streaming.kafka.maxRatePerPartition

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

Другие вопросы по тегам