實戰大資料平臺開發架構講解,免費大資料教學視訊等你來拿

91Code發表於2019-01-21

大資料背景

對於業務資料資料量的暴增,使用者智慧化需求提升。在這個DT的時代,大資料的開發也就應運而生了,大資料開發必須解決兩個問題,大資料量如何統一儲存,大資料量如何統一計算。針對這些問題產生了很多大資料方面的技術框架。到今天為止,大資料方面的技術可以說已經相當成熟,BAT在大資料方面都應用十分的廣泛,大資料量的分析使得資料更有了價值,運營有了通過大資料的分析可以做出精確的營銷計劃,通過收集使用者的操作日誌,分析使用者行為,給出使用者精確和有價值的推薦。人工智慧也是通過海量資料做分析,通過演算法做出智慧準確的行為。

大資料hadoop的應用

大資料應用分析

  1. 統計
  2. 推薦
  3. 機器學習
  4. 人工智慧,預測(演算法)

SQL on Hadoop

  1. Hive
  2. Phoneix(基於HBase)
  3. Spark SQL

hadoop 2.x 的概述

  • hadoop 包含的四大模組
     ==Hadoop Common==          為其他Hadoop模組提供基礎設施。         ==Hadoop HDFS==      一個高可靠、高吞吐量的分散式檔案系統        ==Hadoop MapReduce==       一個分散式的離線平行計算框架         ==Hadoop YARN==       一個新的MapReduce框架,任務排程與資源管理複製程式碼

上述可以看出Hadoop的重點就主要包含三部分,hdfs儲存,MapReduce分散式計算過程,Yarn管理計算任務,包含了資源排程,任務協調,任務監控。

  • HDFS 服務功能

    image
    ==NameNode==主節點,儲存檔案的後設資料如檔名,檔案目錄結構,檔案屬性(生成時間,副本數,檔案許可權),以及每個檔案的塊列表和塊所在DataNode等。==DataNode==在本地檔案系統儲存檔案塊資料,以及塊資料的校驗和。== Secondary NameNode==用來監控HDFS狀態的輔助後臺程式,每隔一段時間獲取HDFS後設資料的快照複製程式碼
  • YARN 服務功能

    image
     ==ResourceManager== 處理客戶端請求 啟動/監控ApplicationMaster 監控NodeManager 資源分配與排程 ==NodeManager== 單個節點上的資源管理 處理來自ResourceManager的命令 處理來自ApplicationMaster的命令 ==ApplicationMaster== 資料切分 為應用程式申請資源,並分配給內部任務 任務監控與容錯 ==Container== 對任務執行環境的抽象,封裝了CPU記憶體等多維資源以及環境變數、啟動命令等任務運  行相關的資訊.複製程式碼
  • 離線計算框架 MapReduce

    image
     == map和reduce== map 階段並行處理輸入資料 reduce 階段對map 結果進行彙總。  ==shuffle ==  連線map 和Reduce 兩個階段  map task 將資料寫到本地磁碟  reduce task 從每個map TASK 上讀取一份資料  特點:  僅適合 離線批處理  具有很好的容錯性和擴充套件性  適合簡單的批處理任務  缺點明顯  啟動開銷大,過多使用磁碟導致效率底下等。複製程式碼

大資料開發過程離線和實時常用的技術框架簡介

實戰大資料平臺開發架構講解,免費大資料教學視訊等你來拿
  • ==nutch==爬蟲取文字資料;
    資料是半結構化資料;
  • ==flume==準備日誌資料
  • ==Scribe==是==Facebook==開源的日誌收集系統. 它能夠從各種日誌源上收集日誌,儲存到一箇中央儲存系統上,以便於進行集中統計分析處理。
  • 結構化資料由RDBMS(關聯式資料庫管理系統)管理和存放在資料庫,
  • ==sqoop==可以將一個關係型資料庫(例如 : MySQL ,Oracle ,Postgres等)中的資料導進到Hadoop的HDFS中,也可以將HDFS的資料導進到關係型資料庫中;
  • ==Oozie==是一個工作流引擎伺服器,用於執行Hadoop Map/Reduce和Pig 任務工作流.
  • ==Mapreduce==是主要操作邏輯和引擎, map是分配, reduce是合併;
  • ==HDFS==是分散式檔案儲存系統
  • ==HBase==快速儲存, 快速響應查詢
  • ==Jaql== 是一個 JSON 的查詢語言,用於簡化 JSON 資料的建模和操作,主要用於分析大規模的半結構化資料。
  • ==Hue==是一個可快速開發和除錯Hadoop生態系統各種應用的一個基於瀏覽器的圖形化使用者介面。
  • ==mahout==對資料進行分析;
    我們要學習好如何使用好來分析;
    提供一些可擴充套件的機器學習領域經典演算法的實現,旨在幫助開發人員更加方便快捷地建立智慧應用程式。Mahout包含許多實現,包括聚類、分類、推薦過濾、頻繁子項挖掘。

針對上述的生態圈做一個簡單的說明:對於大資料開發的步驟,第一步當然是資料來源的來源,爬蟲技術,mutch當然也可以使用諸如python的其他框架,公司中常用的還有通過前端介面收集,flume日誌採集。採集到的資料入hdfs檔案,第二步資料採集之後,需要日誌解析,日誌解析公司一般會自己開發,實現方式可以是mapreduce計算實現原始日誌簡單清洗和入庫hive。第三步是日誌分析,通過簡單的sql可以實現對業務資料分析,簡單的編寫sql如hivesql,sparksql可以進行計劃,如何實現任務流管理就需要用到oozie,資料的分析計算結果最後結果寫入高效能,讀寫資料快的資料儲存系統,例如關係型資料庫mysql,sqlserver 或者HBase。以上基本的離線開發流程就。對於一些業務多維度的分析可能需要事先進行預計算比如使用kylin的cube。對於實時的技術,一般的資料來源是日誌收集之後寫入kafka,然後通過sparkStreaming或者Strom,現在比較流行的還有flink,這些框架都是基於記憶體去進行分散式計算,用空間換時間,達到實時的計算。

離線開發和實時開發系統架構說明

系統架構說明:

本系統架構基於真實的大資料平臺構建:基本的資料結構說明:

 1.日誌資料     來源:      1.APP的介面埋點或者其他渠道埋點      2.外部資料DB同步到hive      3.維度資料,用做於一些關聯 對於日誌資料可以分為兩類,底層基礎業務資料和維度配置資料。 業務資料量龐大,一般天,小時分割槽,維度資料可以使用拉鍊。也可以做mr同步。  2.計算引擎   如何實現各個不同位置資料的互動,比如hive到mysql或hbase的資料交換    3.計算依賴   如何實現一個工作流的計算oozie,sprak中的有向無環圖,當然也可以自己實現計算依賴邏輯。    4.報表計算   報表計算過程平臺管理,任務提交,計算頻率等平臺的治理和資料的結果展示。   以下兩張圖是基於離線和實時的系統開發架構圖:複製程式碼
  • 離線系統架構圖
    實戰大資料平臺開發架構講解,免費大資料教學視訊等你來拿
  • 實時系統架構圖
    實戰大資料平臺開發架構講解,免費大資料教學視訊等你來拿

此外,大資料免費資料可通過百度雲連線獲取,連結為pan.baidu.com/s/1niyAtVLl…,獲取碼spty

91Code-就要編碼,關注公眾號獲取更多內容!

在這裡插入圖片描述

來源:https://juejin.im/post/5c4532966fb9a049f66c6c86

相關文章