У меня есть приложение 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 секунд, и по истечении этого времени исполнитель повторно подключается к тому же брокеру, от которого он отключился.
У меня вопрос, как я могу предотвратить этот тайм-аут запроса и каков наилучший способ найти основную причину этого?
Спасибо