#apache-kafka #spark-streamin&
#apache-kafka #потоковая передача spark
Вопрос:
Я запускаю потоковую передачу spark с помощью программы kafka для подсчета слов, при создании и обработке пакета возникает большая задержка — около 2 минут для каждого пакета. Как я мог бы сократить это время? Существуют ли какие-либо свойства, которые необходимо настроить так, чтобы они были максимально быстрыми — например, свойства на уровне потоковой передачи spark или на уровне kafka ?
Ответ №1:
вы должны определить интервал между каждым пакетом в вашем неструктурированном Streamin&Context, например :
val ssc = Streamin&Context(new SparkConf(), Minutes(1))
в структурированной потоковой передаче у вас есть опция: KafkaConsumer.pollTimeoutMs
при значении по умолчанию 512 мс дополнительная информация: https://spark.apache.or&/docs/latest/structured-streamin&-kafka-inte&ration.html
Другая проблема может возникнуть из-за задержки kafka. вашему приложению может потребоваться много времени для обработки определенного смещения, возможно, 2 минуты, поэтому, как только это смещение завершится, оно опросит другие для обработки. Попробуйте посмотреть на текущее смещение вашей группы потребителей и последнее смещение вашей темы.
Комментарии:
1. Просто хотел убедиться, что это потоковая передача spark с kafka. Фрагмент кода не имеет отношения к делу. Укажите мне на конкретное свойство