【问题标题】:Spark set more node worker instances in nodes with larger memorySpark 在内存更大的节点中设置更多的节点工作实例
【发布时间】:2016-06-02 07:20:37
【问题描述】:

在我的 Spark (1.6.1) 集群中,一些节点的物理内存比其他节点多。但是在executor.memory 中,我必须设置一个固定值,该值同样适用于每个节点,因此也适用于每个节点的工作人员。

一些节点有两倍的内存,但不能全部使用。提出了一种利用所有可用内存的解决方法here,其中使用SPARK_WORKER_INSTANCES 在具有更多内存的节点中增加节点工作人员的数量。

如何为每个节点配置worker实例?

【问题讨论】:

    标签: python scala apache-spark


    【解决方案1】:

    我认为您正在尝试做一些不可行的事情,或者至少这不是您应该思考的方式。创建 Spark 应用程序时,您会创建执行程序,它们是您的工作人员,基本上是 JVM。它们与工作节点的数量和大小无关。例如。如果你问 3 个 4G 内存的 executor,你有 3 个 16G 内存的 worker 节点,那么你的所有 executor 肯定会在同一个节点上实例化,而你无法控制。

    在你的情况下,如果你有一个 128G 的工作节点和一个 32G 内存的工作节点,你可以简单地实例化 20 个 8G 内存的执行器,你将在小型机器上有 4 个执行器,在小型机器上有 36 个其他。通过这种方式,您将利用所有资源。

    【讨论】:

    • 感谢回复,实例化20个执行器,SPARK_EXECUTOR_INSTANCES=20?
    • 你可以简单地在你的 spark-submit 命令中传递 --num-executors 20
    猜你喜欢
    • 2022-01-07
    • 2019-05-31
    • 2021-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 2019-03-23
    • 1970-01-01
    相关资源
    最近更新 更多