【问题标题】:Using all resources in Apache Spark with Yarn通过 Yarn 使用 Apache Spark 中的所有资源
【发布时间】:2015-05-26 11:31:49
【问题描述】:

我正在使用带有 Yarn 客户端的 Apache Spark。 我的 spark 集群中有 4 台工作 PC,每台 8 个 vcpus 和 30 GB 内存。 我将执行程序内存设置为 2G,实例数设置为 33。 我的工作需要 10 个小时才能运行,所有机器大约 80% 处于空闲状态。

我不明白执行程序内存和执行程序实例之间的相关性。我应该每个 Vcpu 都有一个实例吗?我应该将执行程序内存设置为每台机器的机器/#executors 内存吗?

【问题讨论】:

  • 内存利用率如何?

标签: apache-spark hadoop-yarn


【解决方案1】:

我相信你必须使用以下命令:

spark-submit --num-executors 4 --executor-memory 7G --driver-memory 2G --executor-cores 8 --class \"YourClassName\" --master yarn-client

执行者的数量应该是 4,因为您有 4 个工人。执行器内存应该接近每个纱线节点分配的最大内存,大约 5-6GB(我假设你有 30GB 的总 RAM)。

你应该看看 spark-submit 参数并完全理解它们。

【讨论】:

  • 从OP我了解到每台PC都有30G内存
【解决方案2】:

我们使用 cassandra 作为 spark 的数据源。问题是没有足够的分区。我们需要进一步拆分数据。我们将 # of cassandra 分区映射到 spark 分区的映射不够小,我们只会生成 10 或 20 个任务,而不是 100 个任务。

【讨论】:

    猜你喜欢
    • 2016-09-06
    • 2018-12-07
    • 2016-02-03
    • 2016-11-14
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    相关资源
    最近更新 更多