【发布时间】:2021-02-10 16:12:37
【问题描述】:
我正在学习 spark,但我对在 Kubernetes 集群上运行包含 spark 代码的 docker 感到困惑。
-
我读到
spark使用多个节点(服务器),它可以在不同的节点上运行代码,以便更快地完成作业(并在数据太大时使用每个节点的内存) -
另一方面,我了解到 Kubernetes pod(包含 docker/containers)在一个节点上运行。
例如,我从docker 运行以下spark 代码:
num = [1, 2, 3, 4, 5]
num_rdd = sc.parallelize(num)
double_rdd = num_rdd.map(lambda x: x * 2)
一些笔记和提醒(根据我的理解):
- 使用
map命令时,num数组的每个值都映射到不同的spark节点(slave worker) -
k8spod 在一个节点上运行
- 所以我很困惑当 pod 在一个节点上运行时 spark 如何利用多个节点?
-
spark slave workers是否在不同的节点上运行,这就是运行上述代码的 pod 如何与这些节点通信以利用 spark 框架?
【问题讨论】:
标签: docker apache-spark kubernetes