官网截图: 多看英文
- 圆周率案例:
SPARK_HOME=/export/server/spark
${SPARK_HOME}/bin/spark-submit \
--master yarn \
--deploy-mode client \
--driver-memory 512m \
--executor-memory 512m \
--num-executors 1 \
--total-executor-cores 2 \
--class org.apache.spark.examples.SparkPi \
${SPARK_HOME}/examples/jars/spark-examples_2.11-2.4.5.jar \
10
- **基本参数配置:**提交运行Spark Application时,有些基本参数需要传递值,下图:
动态加载Spark Applicaiton运行时的参数,通过–conf进行指定
- Driver Program 参数配置:
每个Spark Application运行时都有一个Driver Program,属于一个JVM Process进程,可以设置内存Memory和CPU Core核数(资源)
- Executor 参数配置: (理解一下 数据量大的话通过它修改内存 CPU)
总结:
Yarn:
--num-executors NUM 去启动的executors的数量,默认为2
--executor-cores NUM 每一个executor有多少cpu cores,yarn默认为1
假如:num-executors=10个executors数量,每个executor有executor-cores=2,所有的executor的cpucores的数量10*2=20个
#Executor 的内存,真正执行计算的内存
--executor-memory MEM Memory per executor (e.g. 1000M, 2G) (Default: 1G). 每个Executor的内存,1G
假如:num-executors=10个executors数量,每个executor的内存--executor-memory=2G,所有参与计算的executors的内存是10*2=20G
--driver-cores NUM Driver端使用的CPuCores集合,默认为1
#Driver 申请资源执行计算
--driver-memory MEM Memory for driver (e.g. 1000M, 2G) (Default: 1024M). Driver的内存,1G
- main代码执行流程:
除了SparkCOntext的开启和关闭其他的部分都在executor完成