Интеграция Spark + Kafka - отображение разделов Kafka на разделы RDD

У меня есть пара основных вопросов, связанных с потоковой передачей искр

[Пожалуйста, дайте мне знать, если на эти вопросы были даны ответы в других сообщениях - я не смог найти ни одного]:

(i) Является ли в Spark Streaming количество разделов в СДР по умолчанию равным количеству рабочих?

(ii) В прямом подходе к интеграции Spark-Kafka количество созданных разделов RDD равно количеству разделов Kafka. Правильно ли считать, что каждый раздел RDD i будет сопоставлен с тем же рабочим узлом j в каждой партии DStream? то есть сопоставление раздела рабочему узлу основано исключительно на индексе раздела? Например, может ли раздел 2 быть назначен работнику 1 в одной партии и работнику 3 в другой?

заранее спасибо

1 ответ

Решение

i) параллелизм по умолчанию - это число ядер (или 8 для мезо), но количество разделов зависит от реализации входного потока

ii) нет, отображение индексов разделов на рабочие узлы не является детерминированным. Если вы запускаете kafka на тех же узлах, что и ваши искровые исполнители, предпочтительным местом для запуска задачи будет узел лидера kafka для этого раздела. Но даже тогда задача может быть запланирована на другом узле.

Другие вопросы по тегам