Тайм-аут запроса клиента Kafka - PullRequest
0 голосов
/ 09 октября 2018

У меня есть приложение Spark Streaming (Scala), работающее на CDH 5.13, использующее сообщения от Kafka с использованием клиента 0.10.0.Мой Kafka кластер содержит 3 брокера.Тема Кафки разделена на 12 разделов, равномерно распределенных между этими 3 брокерами.Мой потоковый потребитель Spark имеет 12 исполнителей по 1 ядру в каждом.Spark Streaming начинает чтение миллионов сообщений от Kafka в каждом пакете, но сокращает их количество до тысяч из-за того, что Spark не способен справиться с загрузкой, и создается очередь необработанных пакетов.Это нормально, и я ожидаю, что Spark обрабатывает небольшие партии очень быстро и возвращается в нормальное состояние, однако я вижу, что время от времени один из исполнителей, который обрабатывает только несколько сотен сообщений, получает ошибку «Тайм-аут запроса» сразу после прочтенияпоследнее смещение от Kafka:

DEBUG org.apache.clients.NetworkClient Disconnecting from node 12345 due to request timeout

После этой ошибки исполнитель отправляет драйверу несколько запросов RPC, которые занимают ~ 40 секунд, и по истечении этого времени исполнитель повторно подключается к тому же брокеру, от которого он отключился.

У меня вопрос, как я могу предотвратить этот тайм-аут запроса и каков наилучший способ найти основную причину этого?

Спасибо

1 Ответ

0 голосов
/ 11 октября 2018

Основной причиной отключения было то, что ответ на запрос данных поступил из Кафки слишком поздно.т.е. после request.timeout.ms параметр, который был установлен по умолчанию 40000 мс.Проблема с отключением была исправлена, когда я увеличил это значение.

...