当我在yarn集群上运行spark作业时,应用程序在队列中运行。那么,如何在多个应用程序中并行运行呢?
发布于 2018-09-02 01:50:10
默认情况下,Spark将在启动作业时获取所有可用资源。
您可以通过spark-submit命令限制每个作业消耗的资源量。
在spark-submit中添加"--conf spark.cores.max=1“选项。您可以更改内核数量以适合您的环境。例如,如果您总共有100个核心,则可以将单个作业限制为25个核心或5个核心,等等。
您还可以限制使用的内存量:--conf spark.executor.memory=4g
您可以通过spark-submit或在conf/spark-defaults.conf文件中更改设置。以下是文档的链接:
发布于 2018-09-02 07:14:02
我认为你的纱线调度选项设置为FIFO。请将其更改为公平或容量scheduler.Fair排定程序尝试分配资源,以便所有正在运行的应用程序获得相同的资源份额。
Capacity Scheduler允许沿着组织线共享Hadoop集群,从而为每个组织分配整个集群的特定容量。每个组织都设置了一个专用队列,该队列被配置为使用给定部分的集群容量。队列可以以分层方式进一步划分,从而允许每个组织在该组织内的不同用户组之间共享其集群许可。在队列中,使用FIFO调度来调度应用程序。
如果您正在使用容量调度器,那么在spark submit中提到您队列--queue queueName
请尝试更改此容量计划程序属性
YARN.Scheduler.Capacity.applications applications=任意数量
它将决定有多少应用程序将并行运行
https://stackoverflow.com/questions/52116609
复制相似问题