Spark 与 Kubernetes
最后更新于
最后更新于
Spark 原生支持 standalone、mesos 和 YARN 的调度方式,当前 kubernetes 社区正在支持 kubernetes 的原生调度来运行 spark。当然您也可以在 Kubernetes 直接部署 spark on YARN 或者 spark standalone 模式。
使用 spark standalone 模式在 Kubernetes 上运行,kubernetes 不负责 spark 任务的调度。这种模式中使用的 spark 本身负责任务调度,kubernetes 只是作为一个 spark 的部署平台。
使用 StatefulSet 和 Headless serverless 来实现。这种模式中 kubernetes 依然不负责 spark 应用的调度,而只是将 Yarn 换了一个部署环境而已。
下面是架构图:
Spark on kubernetes,使用 kubernetes 作为调度引擎,spark 的任务直接调度到 node 节点上。参考:运行支持 kubernetes 原生调度的 Spark 程序。
下图显示的是三种调度方式中单个 kubernetes node 节点上运行的 spark 相关容器的调度情况。
毫无疑问,使用 kubernetes 原生调度的 spark 任务才是最节省资源的。