【问题标题】:How to set Spark configuration to use TASK nodes on AWS?如何设置 Spark 配置以在 AWS 上使用 TASK 节点?
【发布时间】:2020-09-27 09:08:11
【问题描述】:

我不是 Spark 配置专家,我对任务节点有疑问。我在 AWS 中的集群有 1 个主节点、3 个核心节点和 5 个任务节点。我只能在 Master 节点和 3 个 Core 节点上看到负载,而 Task 节点什么也不做。

实例:

  • 核心节点:4 个 vCore,16Gib 内存
  • 任务节点:4 个 vCore,8Gib 内存

我的配置:

    .set("spark.executors.cores", "5")\
    .set("spark.submit.deployMode", "cluster")\
    .set("spark.yarn.executor.memoryOverhead", "1024")\
    .set("spark.sql.shuffle.partitions","108")\
    .set("spark.default.parallelism", "108")\
    .set("spark.yarn.node-labels.enabled","true")\
    .set("spark.yarn.node-labels.am.default-node-label-expression", "CORE")\
    .set("spark.yarn.executor.nodeLabelExpression","TASK")\
    .set("spark.yarn.nodemanager.vmem-check-enabled", "false")\
    .set("spark.yarn.node-labels.configuration-type", 'distributed')\
    .set("spark.memory.fraction", "0.8")\
    .set("spark.memory.storageFraction", "0.2")\
    .set("maximizeResourceAllocation","true")\ 

配置中是否有任何选项可以解决此问题?

【问题讨论】:

  • forums.aws.amazon.com/thread.jspa?messageID=662964。我们也计划使用此功能。所以,如果你管理,请发布。谢谢
  • 他们一直只为我工作,使用 EMR。请记住,某些操作只能由驱动程序完成(在它分配作业的工作量之前)

标签: amazon-web-services apache-spark cluster-computing amazon-emr


【解决方案1】:

我认为没有单独的节点级别称为TASK

TASK 是默认节点级别的一部分。如果您在我的集群中看到,我有 10 个 TASK 节点正在运行,但它是默认分区的一部分。所以删除属性.set("spark.yarn.executor.nodeLabelExpression","TASK")

你也可以在你的 spark 配置中添加这个:

spark.dynamicAllocation.enabled=true

另外我认为你不需要指定这 2 个属性。 在 yarn-site.xml 中已经配置好了。 .set("spark.yarn.node-labels.enabled","true")\ .set("spark.yarn.node-labels.am.default-node-label-expression", "CORE")

【讨论】:

  • 感谢您的回答。我试过spark.dynamicAllocation.enabled=true,但没有任何变化..
猜你喜欢
  • 2018-01-18
  • 1970-01-01
  • 2016-06-04
  • 1970-01-01
  • 2015-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-14
相关资源
最近更新 更多