spark可以在本地模式執行,也可以偽分布式執行。分布式執行的方式有三種,底層資源的排程可以使用mesos或者yarn,也可以使用自帶的standalone模式。
yarn-cluster:driver和executor都執行在yarn集群中。
yarn-clinet:driver執行在本地,executor執行在yarn集群中。
4、cluster manager:指的是在集群中上獲取資源的外部服務。
8、stage:每個job會被拆分很多組task,作為乙個taskset,其名稱為stage。stage的劃分和排程由dagscheduler負責。stage有非最終的stage(shuffle map stage)和最終的stage(result stage)兩種。stage的邊界就是發生shuffle的地方。
9、rdd:spark的基本計算單元,可以通過一系列運算元進行操作(transformation和actioncaozu9o)。同時,rdd是spark最核心的東西,它表示已被分割槽,被序列化,不可變,有容錯機制的,並且能夠被並行操作的資料集合。其儲存級別可以是記憶體,也可以是磁碟,可以通過spark.storage.storagelevel屬性配置。
11、寬依賴:或稱為shuffledependency,與mapreduce中shuffle的資料依賴相同,寬依賴需要計算好所有父rdd對應分割槽的資料,然後在節點之間進行shuffle
12、窄依賴:或稱為narrowdependency,指某個具體的rdd,其分割槽partition a 最多被子rdd中的乙個分割槽partition b依賴。這種情況只有map任務,是不需要發生shuffle過程的。窄依賴又分為1:1和n:1兩種。
13、dagscheduler:根據job構建基於stage的dag,並提交stage給taskscheduler。其劃分stage的依據是rdd之間的依賴關係。
14、taskscheduler:將taskset提交給worker(集群)執行,每個executor執行什麼task就是在此處分配的。
Spark基本概念
下面是spark的乙個日誌計數示例,該程式演示了spark的計算模型 下面是spark執行時涉及的各元件的概況圖 從rdd轉換和儲存角度,使用者程式對rdd通過多個函式進行操作,將rdd進行轉換。block manager管理rdd的物理分割槽,每個block就是節點上對應的乙個資料塊,可以儲存在記...
Spark基本概念
a.driver programs通過sparkcontent物件訪問spark b.sparkcontent代表和乙個集群的鏈結 c.在shell中sparkcontent物件自動建立好了,就是sc 主要分為兩種 python shell和 scala shell 現在主要介紹scala shel...
Spark的基本概念
2018年年末,開始spark學習 block 輸入可能以多個檔案的形式儲存在hdfs上,每個file都包含了很多塊,稱為block。inuptsplit 當spark讀取這些檔案作為輸入時,會根據具體資料格式對應的inputformat進行解析,一般是將若干個block合併成乙個輸入分片,稱為in...