У меня возникают вопросы об отказоустойчивости в Spark Structured Streaming при чтении из kafka. Это из Руководства по программированию структурированной потоковой передачи:
В случае сбоя или преднамеренного завершения работы вы можете восстановить предыдущий ход выполнения и состояние предыдущего запроса и продолжить с того места, где он был остановлен. Это делается с помощью журналов контрольных точек и упреждающей записи.
1) Как перезапустить неудачный запрос? Можно ли это сделать автоматически?
Вы можете настроить запрос с местоположением контрольной точки, и запрос сохранит всю информацию о ходе выполнения (т.е. диапазон смещений, обработанных в каждом триггере) и запущенные агрегаты (например, количество слов в быстром примере) в расположение контрольной точки. Это расположение контрольной точки должно быть путем в файловой системе, совместимой с HDFS, и может быть установлено в качестве параметра в DataStreamWriter при запуске запроса.
2) Что будет, если вы не укажете расположение КПП? Выбрано ли местоположение по умолчанию или у вас нет гарантий отказоустойчивости? Можете ли вы указать в качестве расположения контрольной точки путь к локальной файловой системе, отличной от hdfs, отдельного узла?