Spark概述及基礎

2021-10-24 14:23:51 字數 1756 閱讀 9966

目錄

第一章 spark框架概述及原理 前言

一、框架組成

1.1 框架組成

1.2 應用情況

二、框架執行流程

1.簡易通用流程

2. 任務劃分 總結

apache spark是乙個圍繞速度、易用性和複雜分析構建的大資料處理框架,spark提供了乙個全面、統一的框架用於管理各種有著不同性質(文字資料、圖表資料等)的資料集和資料來源(批量資料或實時的流資料)的大資料處理的需求,與hadoop和storm等其他大資料和mapreduce技術相比,spark有如下優勢:

executor:是執行在工作節點(workernode)的乙個程序,負責執行task。

rdd:彈性分布式資料集,是分布式記憶體的乙個抽象概念,提供了一種高度受限的共享記憶體模型。

dag:有向無環圖,反映rdd之間的依賴關係。

task:執行在executor上的工作單元。

job:乙個job包含多個rdd及作用於相應rdd上的各種操作。

stage:是job的基本排程單位,乙個job會分為多組task,每組task被稱為stage,或者也被稱為taskset,代表一組關聯的,相互之間沒有shuffle依賴關係的任務組成的任務集。

cluter manager:指的是在集群上獲取資源的外部服務。目前有三種型別

1) standalon : spark原生的資源管理,由master負責資源的分配

2) apache mesos:與hadoop mr相容性良好的一種資源排程框架

3) hadoop yarn: 主要是指yarn中的resourcemanager

2. spark執行過程與資源管理器無關,只要能夠獲取executor程序並儲存通訊即可。

3. task採用資料本地性和推測執行等優化機制。

rdd只支援粗粒度轉換,即在大量記錄上執行的單個操作。將建立rdd的一系列lineage(血統)記錄下來,以便恢復丟失的分割槽。rdd的lineage會記錄rdd的元資料資訊和轉換行為,當該rdd的部分分割槽資料丟失時,它可以根據這些資訊來重新運算和恢復丟失的資料分割槽。

窄依賴指的是每乙個父rdd的partition最多被子rdd的乙個partition使用,窄依賴我們形象的比喻為獨生子女。

寬依賴指的是多個子rdd的partition會依賴同乙個父rdd的partition,會引起shuffle,總結:寬依賴我們形象的比喻為超生

dag(directed acyclic graph)叫做有向無環圖,原始的rdd通過一系列的轉換就就形成了dag,根據rdd之間的依賴關係的不同將dag劃分成不同的stage,對於窄依賴,partition的轉換處理在stage中完成計算。對於寬依賴,由於有shuffle的存在,只能在parent rdd處理完成後,才能開始接下來的計算,因此寬依賴是劃分stage的依據。

2)job:乙個action運算元就會生成乙個job

3)stage:根據rdd之間的依賴關係的不同將job劃分成不同的stage,遇到乙個寬依賴則劃分乙個stage。

4)task:stage是乙個taskset,將stage劃分的結果傳送到不同的executor執行即為乙個task。

spark作為乙個全面、統一的大資料處理框架,目前已在行業內廣泛應用,幾乎是大資料工作人員必備技能!

Git概述及基礎操作

二 git使用 2.2遠端倉庫 2.3分支管理 2.4忽略檔案 git是乙個分布式版本控制系統,簡單地說它就是乙個軟體,用於記錄乙個或者若干檔案內容變化,以便將來查閱特定版本修訂情況的軟體 2.1.1工作流程 2.1.2本地倉庫操作 git config global user.name 使用者名稱...

演算法基礎例項概述及目錄

筆者開設本專題主要為了溫習一些常見演算法,主要受眾是一些考研的學生和工作演算法面試的程式設計師,希望本文章能對你有所幫助!將數字字串轉換成整數 求素數超長正整數加法 多項式相加 拓展字元 簡易計算器 計算e值 生成全排列數 漢諾塔 hanoi tower 遊戲 學生成績排序 從檔案中查詢包含給定字串...

Java 基礎Set集合概述及特點

hashset 底層為hashmap。步驟 先看hashcode 值是否相同 相同 繼續走equals 方法 返回true 元素重複不新增 返回false 元素不重複新增 不同 就直接把元素新增到集合 如果類沒有重寫這兩個方法,預設使用object的方法,一般來說不相同.練習 需求 儲存自定義物件,...