在我们运行在yarn下的hadoop集群中,我们遇到了一个问题,即一些“更聪明”的人能够通过在pyspark jupyter笔记本中配置spark jobs来吃掉大量的资源,比如:
conf = (SparkConf()
.setAppName("name")
.setMaster("yarn-client")
.set("spark.executor.instances", "1000")
.set("spark.executor.memory", "64g")
)
sc = SparkContext(conf=conf)
这就导致了这样一种情况,即这些人实际上挤出了其他不那么“聪明”的人。
有没有办法禁止用户自行分配资源,而将资源分配完全留给用户?
1条答案
按热度按时间oknwwptz1#
yarn对多租户集群中的队列容量规划有很好的支持,yarn resourcemanager默认使用capacityscheduler。
在这里,我们在spark submit中将队列名称作为alpha,以供演示。
设置队列:
capacityscheduler有一个名为root的预定义队列。系统中的所有队列都是根队列的子队列。在
capacity-scheduler.xml
,参数yarn.scheduler.capacity.root.queues
用于定义子队列;例如,要创建3个队列,请在逗号分隔的列表中指定队列的名称。
这些是容量规划中需要考虑的几个重要特性。
链接:调度程序队列属性