第50課 Spark 2 0專案概述

2021-07-22 23:15:08 字數 1887 閱讀 6321

1、大資料專案處理流程和步驟

第一步:需求:

資料的輸入和資料的產出,大資料技術專案好比一台榨汁機,資料輸入相當於例如蘋果、檸檬等,然後通過榨汁機產出果汁;

第二步:資料量、處理效率、可靠性、維護性、簡潔性

第三步:資料建模

第四步:架構設計:資料怎麼進來,輸出怎麼展示,最最重要的是處理流出的架構;

第五步:我會再次思考大資料系統和企業it系統的互動;

第六步:最終確定的技術(例如spark、kafka、flume、hbase)選擇、規範等

第七步:基於資料建模寫基礎服務**

第八步:正式編寫第乙個模組!編碼、測試、除錯、改進等等

第九步:實現其它的模組,並完成測試和除錯等

第十步:測試和驗收

2、大資料專案的技術架構流程圖

1)後台系統產生資料:機器或者使用者的行為資料。

2)通過socket或者http協議,傳輸資料到服務端。

第一步:在伺服器端,例如apache、nginx、tomcat等web系統負責接收到資料;

第二步:web系統由j2ee等技術實現,負責處理接收到的資料,一般是通過日誌的方式把資料儲存在特定的目錄下面或者資料庫;

第三步:日誌放置的目錄是大資料元件中的flume或者kafka監控的目錄。

3)日誌一般會經過flume或者kafka進行處理,有時候資料比較複雜,需要使用定時系統或者開發程式對資料進行初步處理,然後交給下游系統,一般是flume。

4)這乙個步驟重點說flume:

flume會監控具體的目錄,當有資料來臨的時候會把資料sink到下游系統中:

- 此時資料是直接交給hdfs呢?

- 還是交給資料倉儲系統hive呢?

- 還是交給訊息元件kafka呢?

- 還是直接交給流處理系統呢?

4.1) 方案1:資料交給kafka

kafka會對資料進行高效的分布式儲存, 流處理系統消費kafka的資料, 流處理系統:現在主要適用storm和spark streaming,從spark streaming的角度考慮,我們在流處理的過程中可能使用spark sql、ml、graphx等;

4.2) 方案2:flume把資料交給hive,在hive中建表並獲取上游的日誌資料。

然後基於hive,進行資料的離線分析:

hadoop和spark,其實絕大多數情況下都是使用hive本身或者spark sql進行資料的多維度分析。

其實離線資料分析的乙個基本任務是進行資料清洗

當今大資料業界80%到90%都是基於hive資料倉儲的資料分析。

3、附錄

flume和kafka有什麼區別及聯絡

這兩個差別很大,使用場景區別也很大。

1) flume:日誌採集。

線上資料一般主要是落地檔案或者通過socket傳輸給另外乙個系統。

這種情況下,很難讓線上已有的應用去修改介面,直接向kafka裡寫資料。

這時候就需要flume這樣的系統幫你去做傳輸。

2) kafka:更應該定位為中介軟體系統。3) kafka+flume 典型用法:

線上資料 ==> flume ==> kafka ==> hdfs ==>mr離線計算

或者 線上資料 ==> flume ==> kafka ==> spark streaming / storm

spark2 0 用socket接收資料並處理

假如你想監聽乙個資料伺服器上的tcp socket來獲取源源不斷的資料流,同時你想要實時的計算單詞的數量。object socketcomplete output可以定義不同的儲存方式,有如下3種 1 complete mode 整個更新的結果集都會寫入外部儲存。整張表的寫入操作將由外部儲存系統的聯...

Spark2 0以下讀取csv資料並轉化為RDD

當spark 版本低於2.0.0時,以及不借助與其他包的情況下,可以用如下方法將csv資料轉化成rdd sc sparkcontext 獲取rdd csvfile sc.textfile csv 逗號分隔 all csvfile.map lambda line line.split 當有標題的時候,...

第12課 spark高可用 HA 框架

worker管理資源 記憶體,cpu 只有standby模式的master變成active模式時才能想集群提交任務,master切換過程不會影響程式的執行 原因 程式在具體執行之前已經向集群申請過資源,這些資源已經提交給driver了,也就是說已經分配好資源了,這是粗粒度分配,一次性分配資源後不需要...