Spark на Kubernetes на собеседовании Data Engineer

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.

Spark on k8s архитектура

Driver — pod. Каждый executor — pod.

spark-submit ... → API server создаёт driver pod → driver launches executor pods.

Service discovery через k8s DNS / services.

С Spark 3.1+ — production-ready.

spark-submit

spark-submit \
  --master k8s://https://kubernetes:443 \
  --deploy-mode cluster \
  --name spark-job \
  --conf spark.executor.instances=10 \
  --conf spark.kubernetes.container.image=spark:3.5 \
  --conf spark.kubernetes.namespace=spark \
  app.jar

Driver запускается в k8s namespace. Executors auto-spawned.

Dynamic allocation

Auto scale executors based на load.

spark.dynamicAllocation.enabled=true
spark.dynamicAllocation.minExecutors=2
spark.dynamicAllocation.maxExecutors=50

Pending tasks → spawn executors. Idle → kill.

С 3.0+ — без external shuffle service в k8s mode (через decommissioning).

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Spark Operator

CRD для declarative Spark jobs.

apiVersion: sparkoperator.k8s.io/v1beta2
kind: SparkApplication
metadata:
  name: my-job
spec:
  type: Scala
  mode: cluster
  image: spark:3.5
  mainClass: com.example.Main
  mainApplicationFile: local:///app.jar

kubectl apply -f job.yaml → Operator creates pods.

Helps integrate Spark в k8s ecosystem (monitoring, logging, scaling).

k8s vs YARN

k8s YARN
Container Pods (Docker) Containers (Hadoop-specific)
Multi-tenant Native Queues
Custom dependencies Easy (Docker images) Harder
Cloud native Yes Legacy
Hadoop ecosystem Decoupled Tight

В 2026: k8s — modern preference. YARN — legacy Hadoop installs.

Связанные темы

FAQ

Это официальная информация?

Нет. Статья основана на документации Spark / Spark Operator.


Тренируйте Data Engineering — откройте тренажёр с 1500+ вопросами для собесов.