В официальной документации Spark говорится, что подход, основанный на Direct, включает использование API SimpleConsumer, в котором Zookeeper не используется для хранения смещений, а смещение вместо этого с использованием контрольной точки метаданных Spark. В документации также говорится, что прямой подход гарантирует единовременную семантику.
Когда мы включаем контрольную точку метаданных Spark с помощью ss c .checkpoint ("directory"), мы никогда не указываем интервал.
Теперь для каждой микропакета, запускаемого после интервала микропакета, драйвер отправляет смещения каждой задаче, которая извлекает данные для соответствующего раздела Kafka.
Вопросы :
Учитывая, что соответствующие данные, полученные из Kafka для указанных смещений, не сохраняются в Spark, и только смещения хранятся в Spark В качестве части контрольной точки метаданных не имеет значения время контрольной точки, поскольку оно напрямую влияет на семантику ровно один раз или, по крайней мере, / чаще всего один раз? Происходит ли это, как только микропакет запускается и Directstream получает данные из kafka, или это происходит в конце завершения микропакета?
Кроме того, что означают смещения как часть контрольной точки метаданных? Указывает ли это обработанные смещения или смещения, которые еще предстоит обработать?