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把每次計算的結果存回磁碟...