码迷,mamicode.com
首页 > 其他好文 > 详细

【Spark篇】---Spark中资源调度源码分析与应用

时间:2018-02-05 23:27:50      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:drive   log   抽取   cluster   数据   submit   mode   bubuko   style   

一、前述

Spark中资源调度是一个非常核心的模块,尤其对于我们提交参数来说,需要具体到某些配置,所以提交配置的参数于源码一一对应,掌握此节对于Spark在任务执行过程中的资源分配会更上一层楼。由于源码部分太多本节只抽取关键部分和结论阐述,更多的偏于应用。

二、具体细节

 

1、Spark-Submit提交参数

 

Options:

 

  • --master

 

 MASTER_URL, 可以是spark://host:port, mesos://host:port, yarn,  yarn-cluster,yarn-client, local

 

  • --deploy-mode

 

DEPLOY_MODE, Driver程序运行的地方,client或者cluster,默认是client。

 

  • --class

 

CLASS_NAME, 主类名称,含包名

 

  • --jars

 

逗号分隔的本地JARS, Driverexecutor依赖的第三方jar包(Driver是把算子中的逻辑发送到executor中去执行,所以如果逻辑需要依赖第三方jar包 比如oreacl的包时 这里用--jars添加)

 

  • --files

 

用逗号隔开的文件列表,会放置在每个executor工作目录

 

  • --conf

 

spark的配置属性

 

  • --driver-memory

 

Driver程序使用内存大小(例如:1000M,5G),默认1024M

 

  • --executor-memory

 

每个executor内存大小(如:1000M,2G),默认1G

 

 

Spark standalone with cluster deploy mode only:

  • --driver-cores

Driver程序的使用core个数(默认为1仅限于Spark standalone模式

 

Spark standalone or Mesos with cluster deploy mode only:

  • --supervise

失败后是否重启Driver,仅限于Spark  alone或者Mesos模式

 

Spark standalone and Mesos only:

  • --total-executor-cores

executor使用的总核数,仅限于SparkStandalone、Spark on Mesos模式

 

Spark standalone and YARN only:

  • --executor-cores

每个executor使用的core数,Spark on Yarn默认为1standalone默认为worker上所有可用的core。

 

YARN-only:

  • --driver-cores

driver使用的core,仅在cluster模式下,默认为1。

  • --queue

QUEUE_NAME  指定资源队列的名称,默认:default

  • --num-executors

一共启动的executor数量,默认是2个

 

2、资源调度源码分析

 

  • 资源请求简单图

技术分享图片

 

 

  • 资源调度Master路径:

       技术分享图片

         路径:spark-1.6.0/core/src/main/scala/org.apache.spark/deploy/Master/Master.scala

 

  • 提交应用程序,submit的路径:

        技术分享图片

         路径:spark-1.6.0/core/src/main/scala/org.apache.spark/ deploy/SparkSubmit.scala

  • 总结:
  1. Executor在集群中分散启动,有利于task计算的数据本地化。
  2. 默认情况下(提交任务的时候没有设置--executor-cores选项),每一个Worker为当前的Application启动一个Executor,这个Executor会使用这个Worker的所有的cores和1G内存。
  3. 如果想在Worker上启动多个Executor,提交Application的时候要加--executor-cores这个选项。
  4. 默认情况下没有设置--total-executor-cores,一个Application会使用Spark集群中所有的cores。

 

 

 

 

【Spark篇】---Spark中资源调度源码分析与应用

标签:drive   log   抽取   cluster   数据   submit   mode   bubuko   style   

原文地址:https://www.cnblogs.com/LHWorldBlog/p/8419472.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!