企業級大數據技術體系概述

本篇文章是對《大數據技術體系詳解:原理、架構與實踐》(作者:董西成 )一書的第一章節的整理。

常見使用場景

  • 互聯網領域
    • 搜索引擎:幫助人們在大數據集上快速檢索信息
    • 推薦系統:能夠在用戶沒有明確目的的時候根據用戶歷史行爲信息幫助他們發現感興趣的內容。如電子商務、視頻網站、新聞推薦
    • 廣告投放:依據用戶的歷史行爲信息及個人基本信息,爲用戶推薦最精準的廣告
  • 電信領域
    • 網絡管理和優化
    • 市場與精準營銷
    • 客戶關係管理
    • 企業運營管理
    • 數據商業化
  • 醫療領域
  • 金融領域
    • 客戶畫像
    • 精準營銷
    • 風險管控
    • 運營優化

企業級大數據技術框架

從數據源開始,經過分析、挖掘到最終獲得價值一般需要經過6個主要環節。分別是數據收集、數據存儲、資源管理與服務協調、計算引擎、數據分析、數據可視化。
企業級大數據技術體系

  • 數據收集層:由直接與數據源對接的模塊構成,負責將數據源中的數據近實時或實時收集到一起。
  • 數據存儲層:負責海量結構化與非結構化數據的存儲。
  • 資源管理與服務協調:資源統一管理理,提高資源利用率。使用服務協調組件來解決分佈式系統中的例如leader選舉、服務命名、分佈式隊列、分佈式鎖、發佈訂閱功能等問題。
  • 計算引擎層:用於完成計算任務
  • 數據分析層:直接與用戶應用程序對接,爲其提供易用的數據處理工具。
  • 數據可視化層:通過可視化技術將數據轉換爲圖形或圖像在屏幕上顯示出來。

數據收集層特點

數據收集層的特點由是數據源決定。
數據源有如下幾個特點:分佈式(數據源分佈在不同機器上,通過網絡連接在一起)、異構性(生產數據的系統多種多樣)、多樣化(數據結構會有多種多樣)、流式產生(數據源會源源不斷的常勝數據)。
由於數據的以上特點,讓數據收集層會有如下幾個特點:擴展性(能夠靈活適配不同的數據源,可接入大量數據源而不產生系統瓶頸)、可靠性(數據在傳輸的過程中不能丟失)、安全性(對一些敏感數據,有保證數據安全的機制)、低延遲

數據存儲層特點

  • 擴展性(實際應用中,數據量會不斷增加,需要非常好的線性擴展能力)
  • 容錯性(需要有良好的容錯機制確保機器出現故障時不會導致數據丟失)
  • 存儲模型(由於數據的多樣性,數據存儲層應支持多種數據模型)

資源管理與服務協調層優點

資源利用率高、運維成本低、數據共享

計算引擎層分類

  • 批處理(時間要求最低,最求高吞吐率,典型的應用有搜索引擎構建索引、批量數據分析)
  • 交互式處理(時間要求高,需需要與人交互,因此會提供類SQL語言便於用戶使用,典型應用有數據查詢、參數化報表生成)
  • 實時處理(對時間要求最高,典型應用有廣告系統、輿情檢測)

Hadoop與Spark開源大數據技術棧

Hadoop與Spark大數據技術棧
整個技術棧涉及的層級爲數據收集、數據存儲、資源管理與服務協調、計算引擎、數據分析。

  • 數據收集層:Sqoop(將關係型數據中的數據全量導入Hadoop)、Canal(將關係型數據中的數據增量導入Hadoop)、Flume(收集非關係型數據,聚集後加載到HDFS等存儲系統中)、Kafka(分佈式消息隊列,採用風不是高容錯設計,更適合大數據應用場景)
  • 數據存儲層:HDFS(Hadoop分佈式文件系統,具有優良的擴展性和容錯性)、HBASE(構建在HDFS之上的分佈式數據庫)、Kudu(分佈式列式存儲數據庫)
  • 資源管理與服務協調:YARN(同意資源管理與調度系統)、Zookeeper(服務協調系統)
  • 計算引擎層:MapReduce(經典批處理計算引擎,具有良好的擴展性和容錯性,允許用戶通過簡單的API編寫分佈式程序)、Tez(基於MapReduce開發的通用DAG計算引擎,能夠更高效的實現複雜的數據處理邏輯)、Spark(通用的DAG計算引擎,允許用戶充分利用內存進行快速的數據挖掘和分析)、Impala/Presto(允許用戶使用標準的SQL處理存儲在Hadoop中的數據)、Storm/Spark Streaming(分佈式流式實時計算引擎,能夠高效處理流式數據)
  • 數據分析層:Hive/Pig/SparkSQL(在計算引擎之上構建的支持SQL或腳本語言的分析系統)、Mahout/MLlib(在計算引擎上構建的機器學習庫)、Apache Beam/Cascading(基於各類計算寬假而封裝的高級API)

大數據架構

LA架構

在這裏插入圖片描述
LA架構主要是結合批處理和流式計算技術在延遲、吞吐量和容錯之間找到一個平衡點。

推薦系統

以推薦系統數據流水線架構爲例
在這裏插入圖片描述

  1. 數據統一流入kafka,之後按照不同粒度導入批處理和流式處理兩個系統中。
  2. 批處理:批處理擁有所有的歷史數據,將所有的數據作爲依據,通過特徵工程、模型構建及模型評估等計算環節後,最終獲得最優的模型並將產生的推薦結果存儲起來,整個過程耗時比較長。
  3. 流式處理:收集用戶數據後通過簡單的推薦算法快速產生推薦結果並存儲起來。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章