У меня есть прецедент, где я должен обрабатывать события в режиме FIFO. Это события, генерируемые машинами. каждая машина генерирует одно событие за 30 секунд. Для конкретной машины нам нужно обработать события на основе FIFO fasion.Обработка FIFO с использованием Spark Streaming?
Нам необходимо обработать около 240 миллионов событий в день. Для такого масштабного масштаба нам необходимо использовать Kafka + Spark Streaming
Из документации Kafka я понимаю, что мы можем использовать ключевое поле сообщения для маршрутизации сообщения в определенный раздел темы. Это гарантирует, что я могу использовать идентификатор машины в качестве ключа и обеспечить, чтобы все сообщения с конкретной машины попадали в один раздел тем.
50% проблема решена.
Здесь идет вопрос на стороне обработки.
Искра Документация подхода Kafka Direct говорит, что разделы RDD эквивалентны разделам Kafka.
Так что, когда я выполняю rdd.foreachPartition, задание выполняет итерацию в упорядоченном fasion?
Обеспечено ли, что раздел RDD всегда лежит в одном исполнителе?
Обеспечено ли, чтобы задача foreachPartition выполнялась только одним потоком для всего раздела?
Пожалуйста, помогите.
первое предложение в этом ответе очень важно. Любая операция, вызванная перемещением, заставит ваши данные «не синхронизироваться». Если это проблема, рассмотрите возможность явной сортировки событий на машинный идентификатор. –