Jam*_*s k 9 resources apache-spark
在用于静态分区的文档https://spark.apache.org/docs/latest/job-scheduling.html的这个页面中,它说"通过这种方法,每个应用程序都可以使用最多的资源".
我只是想知道,这些最大的资源是什么?我找到了每个执行程序设置的内存(在动态分区中刚才提到),我假设限制了应用程序获得的内存资源.但是,决定启动了多少个执行程序/使用了多少个集群节点,例如总集群内存和被"获取"的内核?
在另一个类似的说明是有一种方法来改变每个工作或任务级别要求的内存?
maa*_*asg 12
资源量取决于正在使用的集群管理器,因为不同的集群管理器将提供不同的分配.
例如,在独立模式下,Spark将尝试使用所有节点. spark.max.cores将控制作业将跨节点占用的总核心数.如果没有设置,Spark将使用spark.deploy.defaultCores.该文件spark.deploy.defaultCores进一步阐明了其用途:
如果未设置spark.cores.max,则在Spark的独立模式下为应用程序提供的默认核心数.如果未设置,应用程序始终会获得所有可用内核,除非它们自己配置spark.cores.max.在共享群集上将此值设置得较低,以防止用户默认抓取整个群集.
在Mesos粗粒度模式下,Spark将默认分配所有可用内核.使用spark.max.cores来限制每个作业.
在Mesos细粒度模式下,Spark将根据作业的需要为每个任务分配一个核心,然后释放它们.这确保了以更高的任务分配开销为代价的公平使用.
在YARN中,每个文档:
Spark YARN客户端的--num-executors选项控制它将在集群上分配的执行程序数,而--executor-memory和--executor-cores控制每个执行程序的资源.
关于内存,没有办法设置每个作业或任务的总内存,只有每个执行程序,使用spark.executor.memory.分配给您的工作的内存将是spark.executor.memory x #executors.
| 归档时间: |
|
| 查看次数: |
3395 次 |
| 最近记录: |