Spark性能调优-集群资源分配策略
展开 开发完成Spark作业之后,我们在运行Spark作业的时候需要为其配置一些资源参数,比如num-executors,executor-memory等,这些参数基本上都是可以在spark-submit命令中作为参数设置,但是如何设置合适的参数值是需要我们权衡考虑的(集群资源,调优经验,任务大小等)。参数设置的不合适往往会导致集群资源得不到有效的利用,设置的太大可能会导致资源不够而引发异常,太小的话会使得闲置的资源得不到有效利用,作业运行的极为缓慢。所以,如何合理有效的分配Spark作业资源是需要Spark学习者重点考虑的。下面将一些理论知识结合自己的实践进行讲解。 集群资源情况 我们在为自己的Spark作业设置资源参数的时候,需要对公司的集群资源使用情况有一个较为清晰的了解,主要了解以下几个方面: (1)集群总体情况 公司集群的整体配置信息,比如总内存,内存使用情况,节点数等,对集群的资源有一个整体的认识。 可以从Yarn页面来了解集群整体情况,如红线圈出的一些重要信息: (2)资源队列配置 一般使用资源管理器,比如Yarn,都会设置一些资源队列,比如Hadoop,Spark,default队列等。这里以讯飞公司情况为例讲解,讯飞使用Yarn资源管理器,这里采用Capacity Scheduler任务调度模式,设置了两个资源队列:default和Spark