Spark的基本概念

2021-09-05 12:38:16 字數 1118 閱讀 5770

2023年年末,開始spark學習

block  輸入可能以多個檔案的形式儲存在hdfs上,每個file都包含了很多塊,稱為block

inuptsplit  當spark讀取這些檔案作為輸入時,會根據具體資料格式對應的inputformat進行解析,一般是將若干個block合併成乙個輸入分片,稱為inputsplit,注意inputsplit不能跨越檔案。

task  隨後將為這些輸入分片生成具體的task。inputsplit與task是一一對應的關係。

executor  隨後這些具體的task每個都會被分配到集群上的某個節點的某個executor去執行。

worker  每個work包含多個executor。

job  job簡單講就是提交給spark的任務。

stage  stage是每乙個job處理過程要分為的幾個階段。

task task是每乙個job處理過程要分幾為幾次任務。task是任務執行的最小單位。最終是要以task為單位執行在executor中。

三者關係:job----> 乙個或多個stage---> 乙個或多個task

每個stage 裡task的數量是由輸入檔案的切片個數來決定的。在hdfs中不大於128m的檔案算乙個切片(預設128m)。通過運算元修改了某乙個rdd的分割槽數量,task數量也會同步修改。

rdd的兩種操作:轉換、執行。

數值型rdd的統計操作:count()   rdd的元素個數

pair rdd (鍵值對rdd)的聚合運算:

reducebykey(func)       #合併具有相同鍵的值,注意是轉換操作,reduce是行動操作  

rdd.reducebykey(lambda x,y:x+y) #

groupbykey() #對相同的鍵的值進行分組

rdd.groupbykey() #

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學習 基本概念描述

什麼是spark?是apache旗下的一款開源專案,通俗的理解就是乙個分布式的大資料處理框架,有乙個很大優點,一棧式解決方案 spark與hadoop相比有哪些優點?為什麼spark比hadoop快?因為spark基於記憶體進行計算而hadoop基於磁碟進行計算,hadoop把每次計算的結果存回磁碟...