【问题标题】:spark data locality on large cluster在大型集群上触发数据局部性
【发布时间】: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


【解决方案1】:

经过几天的思考,我意识到spark的强大之处在于处理迭代计算的能力,它应该只是第一次从硬盘读取。之后,执行者的记忆中的一切都可以到达。所以执行者的位置一开始影响不大。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-03
    • 2016-04-17
    • 2020-06-27
    • 1970-01-01
    • 2020-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多