【问题标题】:"total-executor-cores" parameter in Spark in relation to Data NodesSpark 中与数据节点相关的“total-executor-cores”参数
【发布时间】:2019-01-24 23:47:20
【问题描述】:

另一个我读得很少的项目。

将 S3 搁置一旁,现在还不能尝试对 Spark、Hadoop 的裸机经典数据本地化方法,而不是在动态资源分配模式下:

  • 如果HDFS中的一个大数据集分布在Cluster中的(所有)N个数据节点上,但total-executor-cores参数设置低于N,我们显然需要读取所有数据怎么办? (全部)N 个相关数据节点?

  • 我认为 Spark 必须忽略此参数才能从 HDFS 读取。还是不行?

  • 如果忽略它,需要在该数据节点上分配一个 Executor Core 并因此被整个 Job 获取,因此需要将此参数解释为表示处理而不是读取块?

  • 来自这样一个数据节点的数据是否立即洗牌到分配执行者的地方?

提前致谢。

【问题讨论】:

    标签: apache-spark


    【解决方案1】:

    这里似乎有点混乱。

    最佳数据局部性(节点本地)是我们想要实现的,而不是保证。 Spark 所能做的就是请求资源(例如使用 YARN - How YARN knows data locality in Apache spark in cluster mode)并希望它能够获得满足数据局部性约束的资源。

    如果没有,它只会从远程节点获取数据。然而它不是洗牌。它只是一个简单的网络传输。

    所以回答你的问题 - Spark 将使用已分配的资源,尽最大努力满足约束条件。它无法使用尚未获取的节点,因此不会自动获取额外的节点进行读取。

    【讨论】:

    • 逻辑告诉我这是可能的,但我找不到它,而且所有的东西都可以将程序带到数据中。所以,请原谅洗牌,那确实是垃圾。我想知道是否会额外获得资源,显然不会。在 HDFS 上下文中。弹性计算非常适合。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多