spark之Executor与初始化SparkSession

关于Executor:

一个executor同时只能执行一个计算任务

但一个worker(物理节点)上可以同时运行多个executor

executor的数量决定了同时处理任务的数量

一般来说,分区数远大于executor的数量才是合理的

同一个作业,在计算逻辑不变的情况下,分区数和executor的数量很大程度上决定了作业运行的时间

初始化SparkSession

scala版本

import org.apache.spark.sql.SparkSession
val spark = SparkSession.builder().master("yarn-client").appName("New SS").config("spark.executor.instances","10").config("spark.executor.memory","10g").getOrCreate()
import spark.implicits._

  在代码中,我们通过配置指明了spark运行环境时的yarn,并以yarn-client的方式提交作业(yarn还支持yarn-cluster的方式,区别在于前者driver运行在客户端,后者driver运行在yarn的container中)。我们一共申请了10个executer,每个10g。

python版本

from pyspark.sql import SparkSession
spark = SparkSession.builder.master("yarn-client").appName("New SS").config("spark.executor.instances","10").config("spark.executor.memory","10g").getOrCreate()

 

上一篇:Spark 自定义UDF


下一篇:【Spark】Spark常用方法总结1-创建编程入口(Python版本)