Spark on K8s 在 vivo 大数据平台的混部实战与优化
一、Spark on K8s 简介
(一)定义与架构
Spark on K8s 是一种将 Spark 运行在 Kubernetes(K8s)集群上的架构,由 K8s 直接创建 Driver 和 Executor 的 Pod 来运行 Spark 作业。其架构如下。
-
Driver Pod:相当于 Spark 集群中的 Driver,负责作业的调度和管理,它会根据作业的逻辑,将任务分配给 Executor Pod。
-
Executor Pod:相当于 Spark 集群中的 Executor,负责具体的任务执行,包括数据的读取、计算和写入等操作。
-
K8s API Server:负责接收和处理 Spark 提交的作业请求,创建和管理 Driver Pod 和 Executor Pod。
-
K8s Scheduler:根据集群的资源状况,为 Driver Pod 和 Executor Pod 分配合适的节点进行运行。
-
K8s Node:集群中的工作节点,负责运行 Driver Pod 和 Executor Pod。