update
parent
1252973b07
commit
be643b7ce7
|
@ -246,8 +246,8 @@
|
||||||
* [微服务中的服务发现](usecases/service-discovery-in-microservices.md)
|
* [微服务中的服务发现](usecases/service-discovery-in-microservices.md)
|
||||||
* [使用 Java 构建微服务并发布到 Kubernetes 平台](usecases/microservices-for-java-developers.md)
|
* [使用 Java 构建微服务并发布到 Kubernetes 平台](usecases/microservices-for-java-developers.md)
|
||||||
* [Spring Boot 快速开始指南](usecases/spring-boot-quick-start-guide.md)
|
* [Spring Boot 快速开始指南](usecases/spring-boot-quick-start-guide.md)
|
||||||
|
|
||||||
* [大数据](usecases/big-data.md)
|
* [大数据](usecases/big-data.md)
|
||||||
|
* [Spark 与 Kubernetes](usecases/spark-on-kubernetes.md)
|
||||||
* [Spark standalone on Kubernetes](usecases/spark-standalone-on-kubernetes.md)
|
* [Spark standalone on Kubernetes](usecases/spark-standalone-on-kubernetes.md)
|
||||||
* [运行支持 Kubernetes 原生调度的 Spark 程序](usecases/running-spark-with-kubernetes-native-scheduler.md)
|
* [运行支持 Kubernetes 原生调度的 Spark 程序](usecases/running-spark-with-kubernetes-native-scheduler.md)
|
||||||
* [Serverless 架构](usecases/serverless.md)
|
* [Serverless 架构](usecases/serverless.md)
|
||||||
|
|
|
@ -1,39 +1,6 @@
|
||||||
# 大数据
|
# 大数据
|
||||||
|
|
||||||
Kubernetes community中已经有了一个Big data SIG,大家可以通过这个SIG了解kubernetes结合大数据的应用。
|
Kubernetes community 中曾经有了一个Big Data SIG,现为 [Big Data User Group](https://github.com/kubernetes/community/tree/master/ug-big-data),大家可以通过这个用户组了解 Kubernetes 结合大数据的应用。
|
||||||
|
|
||||||
在Swarm、Mesos、kubernetes这三种流行的容器编排调度架构中,Mesos对于大数据应用支持是最好的,spark原生就是运行在mesos上的,当然也可以容器化运行在kubernetes上。当前在kubernetes上运行大数据应用主要是spark应用。
|
在Swarm、Mesos、kubernetes这三种流行的容器编排调度架构中,Mesos对于大数据应用支持是最好的,spark原生就是运行在mesos上的,当然也可以容器化运行在kubernetes上。当前在kubernetes上运行大数据应用主要是spark应用。
|
||||||
|
|
||||||
## Spark on Kubernetes
|
|
||||||
|
|
||||||
Spark原生支持standalone、mesos和YARN的调度方式,当前kubernetes社区正在支持kubernetes的原生调度来运行spark - 。
|
|
||||||
|
|
||||||
当然您也可以在kubernetes直接部署spark on yarn或者spark standalone模式,仍然沿用已有的
|
|
||||||
|
|
||||||
## Spark Standalone
|
|
||||||
|
|
||||||
使用spark standalone模式在kubernetes上运行,kubernetes不负责spark任务的调度。参考:[Spark standalone on Kubernetes](spark-standalone-on-kubernetes.md)
|
|
||||||
|
|
||||||
这种模式中使用的spark本身负责任务调度,kubernetes只是作为一个spark的部署平台。
|
|
||||||
|
|
||||||
## Spark on Yarn
|
|
||||||
|
|
||||||
使用StatefulSet和Headless serverless来实现。
|
|
||||||
|
|
||||||
这种模式中kubernetes依然不负责spark应用的调度,而只是将Yarn换了一个部署环境而已。
|
|
||||||
|
|
||||||
下面是架构图:
|
|
||||||
|
|
||||||
![Spark on yarn with kubernetes](../images/spark-on-yarn-with-kubernetes.png)
|
|
||||||
|
|
||||||
### Spark on Kubernetes
|
|
||||||
|
|
||||||
Spark on kubernetes,使用kubernetes作为调度引擎,spark的任务直接调度到node节点上。参考:[运行支持kubernetes原生调度的Spark程序](running-spark-with-kubernetes-native-scheduler.md)。
|
|
||||||
|
|
||||||
### 调度方式总结
|
|
||||||
|
|
||||||
下图显示的是三种调度方式中单个kubernetes node节点上运行的spark相关容器的调度情况。
|
|
||||||
|
|
||||||
![在kubernetes上使用多种调度方式](../images/spark-on-kubernetes-with-different-schedulers.jpg)
|
|
||||||
|
|
||||||
毫无疑问,使用kubernetes原生调度的spark任务才是最节省资源的。
|
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
# 运行支持kubernetes原生调度的Spark程序
|
# 运行支持kubernetes原生调度的Spark程序
|
||||||
|
|
||||||
|
**注:该项目已不推荐使用。**
|
||||||
|
|
||||||
TL;DR 这个主题比较大,该开源项目也还在不断进行中,我单独做了一个 web 用来记录 spark on kubernetes 的研究和最新进展见: https://jimmysong.io/spark-on-k8s
|
TL;DR 这个主题比较大,该开源项目也还在不断进行中,我单独做了一个 web 用来记录 spark on kubernetes 的研究和最新进展见: https://jimmysong.io/spark-on-k8s
|
||||||
|
|
||||||
**注意**:本文中的镜像仓库地址 `harbor-001.jimmysong.io` 为的镜像仓库地址为伪装地址,非本文中真正使用的镜像仓库,且该地址也不存在,请替换为您自己的镜像仓库。
|
**注意**:本文中的镜像仓库地址 `harbor-001.jimmysong.io` 为的镜像仓库地址为伪装地址,非本文中真正使用的镜像仓库,且该地址也不存在,请替换为您自己的镜像仓库。
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
# Spark 与 Kubernetes
|
||||||
|
|
||||||
|
Spark 原生支持 standalone、mesos 和 YARN 的调度方式,当前 kubernetes 社区正在支持 kubernetes 的原生调度来运行 spark。当然您也可以在 Kubernetes 直接部署 spark on YARN 或者 spark standalone 模式。
|
||||||
|
|
||||||
|
## Spark Standalone
|
||||||
|
|
||||||
|
使用 spark standalone 模式在 Kubernetes 上运行,kubernetes 不负责 spark 任务的调度。这种模式中使用的 spark 本身负责任务调度,kubernetes 只是作为一个 spark 的部署平台。
|
||||||
|
|
||||||
|
## Spark on Yarn
|
||||||
|
|
||||||
|
使用 StatefulSet 和 Headless serverless 来实现。这种模式中 kubernetes 依然不负责 spark 应用的调度,而只是将 Yarn 换了一个部署环境而已。
|
||||||
|
|
||||||
|
下面是架构图:
|
||||||
|
|
||||||
|
![Spark on yarn with kubernetes](../images/spark-on-yarn-with-kubernetes.png)
|
||||||
|
|
||||||
|
### Spark on Kubernetes
|
||||||
|
|
||||||
|
Spark on kubernetes,使用 kubernetes 作为调度引擎,spark 的任务直接调度到 node 节点上。参考:[运行支持 kubernetes 原生调度的 Spark 程序](./running-spark-with-kubernetes-native-scheduler.md)。
|
||||||
|
|
||||||
|
### 调度方式总结
|
||||||
|
|
||||||
|
下图显示的是三种调度方式中单个 kubernetes node 节点上运行的 spark 相关容器的调度情况。
|
||||||
|
|
||||||
|
![在 kubernetes 上使用多种调度方式](../images/spark-on-kubernetes-with-different-schedulers.jpg)
|
||||||
|
|
||||||
|
毫无疑问,使用 kubernetes 原生调度的 spark 任务才是最节省资源的。
|
|
@ -1,10 +1,10 @@
|
||||||
# Spark standalone on Kubernetes
|
# Spark standalone on Kubernetes
|
||||||
|
|
||||||
该项目是基于 Spark standalone 模式,对资源的分配调度还有作业状态查询的功能实在有限,对于让 spark 使用真正原生的 kubernetes 资源调度推荐大家尝试 <https://github.com/apache-spark-on-k8s/>。
|
**注:该项目已不推荐使用。**
|
||||||
|
|
||||||
代码和使用文档见Github地址:https://github.com/rootsongjc/spark-on-kubernetes
|
该项目是基于 Spark standalone 模式,对资源的分配调度还有作业状态查询的功能实在有限,对于让 spark 使用真正原生的 kubernetes 资源调度可以尝试 [apache-spark-on-k8s](https://github.com/apache-spark-on-k8s/),代码和使用文档见 [spark-on-kubernetes](https://github.com/rootsongjc/spark-on-kubernetes)。
|
||||||
|
|
||||||
本文中用到的 yaml 文件可以在 `manifests/spark-standalone` 目录下找到,也可以在上面的 <https://github.com/rootsongjc/spark-on-kubernetes/> 项目的 manifests 目录下找到。
|
本文中用到的 yaml 文件可以在 `manifests/spark-standalone` 目录下找到,也可以在上面的 [spark-on-kubernetes](https://github.com/rootsongjc/spark-on-kubernetes/) 项目的 manifests 目录下找到。
|
||||||
|
|
||||||
## 在 Kubernetes 上启动 spark
|
## 在 Kubernetes 上启动 spark
|
||||||
|
|
||||||
|
@ -33,13 +33,13 @@ $ kubectl create -f manifests/
|
||||||
|
|
||||||
172.20.0.119 是我设置的 VIP 地址,VIP 的设置和 traefik 的配置请查看 [kubernetes-handbook](https://github.com/rootsongjc/kubernetes-handbook)。
|
172.20.0.119 是我设置的 VIP 地址,VIP 的设置和 traefik 的配置请查看 [kubernetes-handbook](https://github.com/rootsongjc/kubernetes-handbook)。
|
||||||
|
|
||||||
**spark ui**
|
**Spark UI**
|
||||||
|
|
||||||
访问 `http://spark.traefik.io`
|
访问 `http://spark.traefik.io`
|
||||||
|
|
||||||
![spark master ui](../images/spark-ui.jpg)
|
![spark master ui](../images/spark-ui.jpg)
|
||||||
|
|
||||||
**zeppelin ui**
|
**Zeppelin UI**
|
||||||
|
|
||||||
访问 `http://zepellin.treafik.io`
|
访问 `http://zepellin.treafik.io`
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue