我不是spark配置专家,并且任务节点有问题。我在AWS中的集群有1个主节点,3个核心节点和5个任务节点。我只能在主节点和3个核心节点上看到负载,而任务节点却什么也没做。
实例:
我的配置:
.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")\
配置中是否有任何选项可以解决此问题?
答案 0 :(得分:1)
我认为没有单独的节点级别,称为TASK
。
任务是默认节点级别的一部分。如果在群集中看到,我正在运行10个TASK节点,但它是默认分区的一部分。因此,删除属性.set("spark.yarn.executor.nodeLabelExpression","TASK")
您还可以将其添加到您的spark配置中吗?
spark.dynamicAllocation.enabled=true
我也不认为您需要指定这两个属性。
在yarn-site.xml中,它已经配置。
.set("spark.yarn.node-labels.enabled","true")\
.set("spark.yarn.node-labels.am.default-node-label-expression", "CORE")