Я пытаюсь прочитать данные из Kafka topi c с помощью Spark Structured Streaming. Брокеры Kafka поддерживают SSL. Поэтому мне нужно установить / импортировать частный сертификат ЦС в файл TrustStore, присутствующий в драйвере искры и исполнителях.
Я не могу использовать отдельный шаг для импорта сертификата перед основной командой отправки искры, потому что скрипт искры передается динамически ( скачал с s3). Этот искровой скрипт из s3 содержит информацию о том, где находится файл частного сертификата CA (.pem) (в отдельном месте s3).
Я искал способы сделать это. Большинство решений требует создания RDD или DataFrame и вызова на нем функции Map или MapPartition (по сути, определяя раздел). Но для меня это как круговая зависимость. Ни я не могу создать Dataframe или RDD без предварительного импорта частного сертификата CA, ни я не могу импортировать сертификат ca без создания DataFrame или RDD.
Я могу создать фиктивный DataFrame и попытаться распределить их по всем исполнителям, но это решение не будет всегда работают (например, что, если узел-исполнитель выйдет из строя, а затем восстановится, или что, если DataFrame не распределен должным образом на всех узлах-исполнителях из-за ограничений алгоритма разделения).
Может ли кто-нибудь предложить лучший способ выполнить небольшую функцию на Драйвер и все исполнители без создания DataFrame или RDD?