spark之Executor與初始化SparkSession
阿新 • • 發佈:2020-06-27
關於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 importSparkSession spark = SparkSession.builder.master("yarn-client").appName("New SS").config("spark.executor.instances","10").config("spark.executor.memory","10g").getOrCreate()