hadoop的mapreduce計算過程:
input ->map -partitions-merge-reduce-output
mapReduce慢的原因:頻繁的寫磁盤導致額外的複製以及IO開銷
Spark:
術語 | 解釋 | |
0 | Application | 基於Spark的用戶程序,包含了driver和集羣上的executer |
1 | Driver Program | 運行main函數並且新建SparkContext的程序 |
2 | Executor | 在一個worker node上爲某應用啓動的一個進程,該進程負責運行任務,兵器負責將數據存在內存或者磁盤上,每個應用都有各自獨立的exectors |
3 | Cluster Manager | 在集羣上獲取資源的外部服務 |
4 | worker Node | 集羣中可以任何運行引用代碼的節點 |
5 | Task | 被送到某個exector上的工作單元 |
6 | Job | 包含很多任務的並行運算,可以看做和spark的action對應 |
7 | Stage | Job會被拆分爲很多組任務,每組任務被稱爲stage |
Application的組成:由0-7組成
核心概念
RDD
窄依賴,一系列的轉換操作,下一個rdd依賴的父rdd只有1個
寬依賴,下一個rdd依賴的父RDd大於1個
優缺點:窄依賴放在一個節點操作,可以提高執行效率
partition爲最小單位,分片。哪一步出錯,返回父rdd重新執行即可,這就是spark的容錯性。