gpt4 book ai didi

apache-spark - 分区如何映射到 Spark 中的任务?

转载 作者:行者123 更新时间:2023-12-04 05:11:57 25 4
gpt4 key购买 nike

如果我对 RDD 进行分区说 60,我总共有 20 个内核分布在 20 台机器上,即单核机器的 20 个实例,那么任务数是 60(等于分区数)。为什么这比每个内核一个分区和 20 个任务更有利?

此外,我运行了一个实验,我将分区数设置为 2,检查 UI 显示在任何时间运行 2 个任务;然而,令我惊讶的是它会在任务完成时切换实例,例如node1 和 node2 执行前 2 个任务,然后 node6 和 node8 执行下一组 2 个任务等。我认为通过将分区数量设置为小于集群中的核心(和实例),那么程序将只使用最小值需要的实例数。谁能解释这种行为?

最佳答案

对于第一个问题:您可能需要比严格必要的更细粒度的任务,以便同时减少内存加载。此外,它还有助于容错,因为在发生故障时需要重做的工作更少。它仍然是一个参数。一般来说,答案取决于工作负载的种类(IO 限制、内存限制、CPU 限制)。

至于第二个,我相信1.3版本有一些动态请求资源的代码。我不确定中断是哪个版本,但旧版本只请求您配置驱动程序的确切资源。至于分区如何从一个节点移动到另一个节点,好吧,AFAIK 它将从在 HDFS 上具有该数据的本地副本的节点中选择任务的数据。由于 hdfs 有每个数据块的多个副本(默认为 3 个),因此有多个选项可以运行任何给定的数据块)。

关于apache-spark - 分区如何映射到 Spark 中的任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29831234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com