1. 程式人生 > 實用技巧 >spark之Executor與初始化SparkSession

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()