【大数据】企业级大数据技术体系概述
目錄
產生背景
常見應用場景
企業級大數據技術框架
數據收集層
數據存儲層
資源管理與服務協調層
計算引擎層
數據分析層
數據可視層
企業級大數據技術實現方案
Google 大數據技術棧
Hadoop與Spark開源大數據技術棧
一個經典LA應用案例:推薦系統
產生背景
大數據技術直接來源互聯網行業,互聯網的用戶量和數據越來越多逐步形成大數據,根據有關技術報告知道,國內百度,騰訊,和阿里巴巴等數據規模如下(2013年):
- 百度數據總量接近1000PB,網頁數量幾千億個,每年更新幾十億個,每天查詢次數幾十億次。
- 騰訊用戶約有8億,4億移動用戶,總存儲數據量經壓縮處理后100PB,日增200TB到30TB。
- 阿里巴巴總數據量100PB,每天活躍數據量超過50TB。
常見應用場景
互聯網領域:搜索引擎,推薦系統,廣告系統
電信領域:
- 網絡管理與優化:包括基礎設施優化,網絡運營管理和優化。
- 市場與精準營銷:包括客戶畫像,關系鏈研究,精準營銷,實時營銷和個性化推薦。
- 客戶關系管理:包括客戶中心優化和客戶生命周期管理。
- 企業運營管理:包括業務運營監控和經營分析。
- 數據商業化:數據對外商業化,單獨盈利。
醫療領域:臨床數據對比,藥品研發,臨床決策支持,實時統計分析,基本藥物臨床應用分析,遠程病人數據分析,人口統計學分析,新農合基金數據分析,就診行為分析,新的服務模式等。
金融領域:
- 用戶畫像應用:個人客戶和企業客戶,個人畫像包括人口統計學特征,消費能力,興趣,風險愛好等;企業客戶畫像包括企業的生產,流通,運營,財務,銷售,客戶,相關產業鏈上下游等數據。
- 精準營銷:如根據客戶的年齡,資產規模,理財偏好等,對客戶群進行精準定位,分析出其潛在的金融服務需求,進行針對性營銷推廣。
- 風險管控:中小企業貸款風險評估和反欺詐交易識別等手段
- 運營優化:對市場和渠道分析優化,產品和服務優化等。通過監控不同市場推廣渠道尤其是網絡渠道推廣的質量,從而進行合作渠道的調整和優化;將客戶行為轉化為信息流,從中分析客戶的個性特征和風險偏好,更深層次地理解客戶的習慣,智能化分析和預測客戶需求,從而進行產品創新和服務優化。
企業級大數據技術框架
數據在信息系統中流動,大數據從數據源開始,經過分析,挖掘到最終獲得有價值,經過 6 個環節:
數據收集層
數據源一般特點
- 分布式:分布在不同機器或設備上,通過網絡連接在一起。
- 異構性:任何能產生數據的系統均可以稱為數據源,如手環,傳感器,視頻攝像頭等。
- 多樣化:關系型(用戶基本信息)和非關系型(圖片,音頻,視頻等)。
- 流式產生:數據源如同“水龍頭”,源源不斷。收集系統應實時或近實時將數據發送到后端,以便對數據進行及時分析。
適用大數據領域收集系統一般具備特性
- 擴展性:適配不同數據源,并能接入大量數據源而不會產生系統瓶頸。
- 可靠性:數據不丟失
- 安全性:敏感數據處理機制
- 低延性:保證較低延遲前提將數據傳輸到后端系統
數據存儲層
- 擴展性:存儲能力擴展
- 容錯性:考慮成本等因素,大數據系統從最初假設構建在廉價機器上,要求系統本身就有良好的容錯機制確保在機器出現故障時不會導致丟失數據。
- 存儲模型:支持多種數據模型
資源管理與服務協調層
傳統的"一個應用一個集群"缺點:資源利用率低,運維成本高,從而引入數據共享輕量級彈性資源管理平臺,資源統一管理層好處:
- 資源利用率高:共享集群模式通過多種應用共享資源,使得集群中資源得到充分利用。
- 運維成本低:需要少數管理員即可完成多個框架的統一管理。
- 數據共享:共享集群模式解決跨集群間的數據移動不僅需要花費更長的時間,且硬件成本也大大增加問題。
計算引擎層
針對不同應用場景,單獨構建一個計算機引擎,每種計算引擎只專注于解決某一類問題。
- 批處理:對實時要求低,追求高吞吐量,比如搜索引擎建索引,數據挖掘,機器學習等。
- 交互式處理:對時間要求較高,秒級別。需要跟人進行交互,如應用數據查詢,參數化報表,OLAP等。
- 實時處理:對時間要求最高,延遲在秒級內,如廣告系統,輿情監測等。
數據分析層
該層直接跟用戶應用程序對接,提供易用的數據處理工具。一般結合工具使用,使用處理框架對原始海量數據進行分析,產生較小規模的數據集,在此基礎上,再使用交互式處理工具對數據集進行快速查詢,獲取查詢結果。
數據可視層
運用計算機圖形學和圖像處理技術,將數據轉換為圖形或圖像在屏幕上顯示出來,并進行交互式的理論,方法和技術。
企業級大數據技術實現方案
Google 大數據技術棧
( 論文形式對外公開)
Google 大數據技術棧1.數據存儲層
- GFS:文件系統(Google File System)是一個分布式文件系統。
- BigTable:構建在GFS上分布式數據庫,本質上是一個稀疏,分布式,持久化存儲的多維度排序映射表。
- MegaStore:構建在BigTable之上,支持ACID特性分布式數據庫。
- Spanner:可擴展,多版本,全球分布式,支持同步復制的數據庫。
2.資源管理與服務協調層
- Borg:集群資源管理器和調度系統,負責集群的資源管理器和統一調度,并對應程序進行接收,啟動,停止,重啟和監控。
- Omega:Google下一代集群資源管理器和調度系統。
- Chubby:為松散耦合的分布式系統提供粗粒度的鎖以及可靠存儲。
3.計算引擎層
- MapReduce:批處理計算框架,任務分解和結果匯總。
- Dreme:分布式OLAP系統
- Prege:分布式圖計算框架,專門用來解決網頁鏈接分析,設計數據挖掘等實際應用中涉及的大規模分布式圖計算框架。
- Precolator:基于BigTable構建的大數據集增量更新系統。
- MillWheel:分布式流式實時處理框架
4.數據分析層
- FlueJava:建立在MapReduce之上的編程庫
- Tenzing:建立在MapReduce之上的SQL查詢執行引擎。將用戶編寫的SQL語句轉化為MapReduce程序,并提交到集群分布式并行執行。
Hadoop與Spark開源大數據技術棧
Hadoop 與 Spark 大數據技術棧1.數據收集層
主要由關系型和非關系型數據收集組建,分布式消息隊列構成。
- Sqoop/Cannal:關系型數據收集和導入工具,是連接關系型數據庫 (比如MySQL) 和Hadoop (比如HDFS) 的橋梁。Sqoop可將關系型數據庫中的數據全量導入Hadoop,反之亦可,Cannal用于實現數據的增量導入。
- Flume:非關系型數據收集工具,主要是流式日志數據,可近實時收集,經過濾,聚合后加載到HDFS等儲存系統。
- Kafka:分布式消息隊列,一般做數據總線使用,它允許多個數據消費者訂閱并獲取感興趣的數據。(分布式高容錯設計)
2.數據存儲層
主要由分布式文件系統(面向文件的存儲)和分布式數據庫(面向行/列的存儲)構成。
- HDFS:Hadoop分布式文件系統,Google GFS的開源實現,具有良好擴展性與容錯性等優點。
- HBase:構建在HDFS之上的分布式數據庫,Google Bigtable的開源實現,允許用戶存儲結構化與半結構化的數據,支持行列無限擴展以及數據隨機查找與刪除。
- Kudo:分布式列式存儲數據庫,允許用戶存儲結構化數據,支持行無限擴展以及數據隨機查找和更新。
3.資源管理與服務協調
- YARN:統一資源管理和調度系統,它能夠管理集群中的各種資源(比如CPU,內存等),按照一定策略分配給上層的各類應用。內置了多種多租戶資源調度器,允許用戶按照隊列的方式組織和管理資源,且每個隊列的調度機制可以獨立定制。
- ZooKeeper:基于簡化的Paxos協議實現的服務協調系統,提供類型類似文件系統的數據模型,允許用戶通過簡單的API實現leader選舉,服務命名,分布式隊列與分布式鎖等復雜的分布式通用模塊。
4.計算引擎層
包含批處理,交互式處理和流式實時處理三種引擎
- MapReduce/Tez:典型的批處理計算引擎,允許用戶通過簡單的API編寫分布式程序;Tez基于MapReduce開發的通用的DAG計算引擎,能夠更加高效實現負責的數據處理邏輯,目前應用在Hive, Pig等數據分析系統中。
- Spark:通用的DAG計算引擎,提供了基于RDD的數據抽象表示,允許用戶充分利用內存進行快速數據挖掘和分析。
- Impala/Presto:分別由Cloudera和Facebook開源的MPP系統,允許用戶使用標準SQL處理存儲在Hadoop中的數據,采用并行數據架構,內置了查詢優化器,查詢下推,代碼生成等優化機制。
- Storm/Spark Streaming:分布式流式實時計算引擎,允許用戶通過簡單的API完成實時應用程序的開發工作。
5.數據分析層
方便用戶解決大數據問題而提供各種數據分析工具
- Hive/Pig/SparkSQL:支持SQL或腳本語言的分析系統,降低用戶進行大數據分析的門檻。
- Mahout/MLlib:機器學習庫學習庫實現了常用的機器學習和數據挖掘算法,Mahout最初是基于MapReduce實現的,目前正逐步遷移到Spark引擎上。MLib是基于Spark實現的。
- Apache Bean/Cascading:基于各類計算框架而封裝的高級API,方便用戶構建負責的數據流水線。
大數據架構:Lambda Architecture
LA最早Twitter工程師提出來,大數據軟件設計架構,目的指導用戶充分利用批處理和流式計算計算各自的優點實現一個復雜大數據處理系統。
- 批處理層:思想是利用分布式批處理處理計算,以批為單位處理數據,并產生一個經預算產生的只讀數據視圖。將數據流看成只讀,僅支持追加操作的超大數據集;優點是吞吐率高,缺點是數據處理延遲高。
- 流式處理層:為降低批處理延遲。優點是處理延遲低,缺點是無法進行復雜的邏輯計算,得到結果往往是近似解。
- 服務層:整合批處理層和流式處理層,既保證數據延遲低,也能完成復雜的邏輯計算。對外提供統一的接口方便用戶使用。
一個經典LA應用案例:推薦系統
推薦系統設計目的:根據用戶的興趣特點和購買行為,向用戶推薦感興趣的信息和商品。建立在海量數據挖掘基礎上的一種高級商務智能平臺,幫助商家為其顧客購物提供完全個性化決策支持和信息服務。
推薦系統數據流水線?
?
注:內容主要整理自《大數據技術體系詳解 原理、架構與實踐》 董西成
總結
以上是生活随笔為你收集整理的【大数据】企业级大数据技术体系概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【项目管理】接手一支技术团队,你会做些哪
- 下一篇: 【项目管理】专用中英文术语词汇 205