Имеется Kafka, куда падают события, их необходимо фильтровать и заносить в разные БД.
Сейчас все построено на Apche Spark (PySpark).
В каждом docker контейнере был запущен свой локальный SparkContext, со своим writeStream.foreachBatch.
Но это весьма затратно по памяти, поэтому сейчас перенес все в один контейнер, в котором к одному контексту коннектятся writeStream.
В любом случае, хотелось бы иметь резервирование, чтобы было запущено два контейнера на разных машинах с одной задачей. Как это возможно сделать?
Предполагаю что потребуется отдельный Spark кластер с двумя мастерами и N мастерами.
А как задублировать задачи (spark driver)?