【发布时间】:2015-10-13 11:50:40
【问题描述】:
由于在初始化 SparkContext 时分配了 spark 执行器,因此当我之后加载数据时(例如使用 sc.textFile()),spark 如何确保数据局部性?我的意思是,在一个拥有 5000 台服务器的大型集群中,执行程序的位置在所有工作人员的子集上是随机的,并且在分配执行程序时,spark 甚至不知道我的数据在哪里。这个时候,数据局部性就只能靠运气了?或者spark中还有其他方法可以重新分配执行者或某事吗?
【问题讨论】:
-
@zero323:我已经看到了,但这是关于如何找到最佳数据局部性的执行者,而不是关于执行者本身。例如,我有编号为 0-9 的服务器并设置了 3 个执行器,它们最终位于服务器 #0、1、2 上。执行器启动后,我开始加载数据,恰好位于服务器#7,8,9,因此无法确保数据局部性。 spark有没有办法避免这种情况?
标签: apache-spark executor