Я уже давно собираю толстые банки для спарк-представлений, и они работают как шарм.
Теперь я бы хотел развернуть спарк-задания поверх кубернетов.
Способ, описанный на сайте Spark (https://spark.apache.org/docs/latest/running-on-kubernetes.html), просто вызывает скрипт docker-image-tool.sh
для упаковки основной банки в контейнер докера.
Мне было интересно:
Может ли это быть лучше, если использовать sbt-native-packager
в сочетании с sbt-assembly
для создания образов Docker, которые содержат весь код, необходимый для запуска драйвера spark, запуска кода (со всеми связанными библиотеками) и, возможно, предлагают способ связыванияБиблиотеки путей к классам (например, postgres jar) в одном изображении.
Таким образом, запуск модуля запускает мастер-версию spark k8s (режим клиента или кластерный режим, что бы ни работало лучше), запускает создание рабочих модулей и отправляет иск.локальный jar (со всеми необходимыми библиотеками в комплекте) и работающий до завершения.
Может быть, мне не хватает, почему это не может работать или это плохая идея, но я чувствую, что конфигурация будет более централизованной и прямойтогда текущий подход?
Или есть другие лучшие практики?