大數據下的數據分析平臺架構

2020-12-18 CSDN技術社區

隨著網際網路、移動網際網路和物聯網的發展,誰也無法否認,我們已經切實地迎來了一個海量數據的時代,數據調查公司IDC預計2011年的數據總量將達到1.8萬億GB,對這些海量數據的分析已經成為一個非常重要且緊迫的需求。

謝超

Admaster數據挖掘總監,雲計算實踐者,10年數據倉庫和數據挖掘諮詢經驗,現專注於分布式平臺上的海量數據挖掘和機器學習。

作為一家網際網路數據分析公司,我們在海量數據的分析領域那真是被「逼上梁山」。多年來在嚴苛的業務需求和數據壓力下,我們幾乎嘗試了所有可能的大數據分析方法,最終落地於Hadoop平臺之上。

Hadoop在可伸縮性、健壯性、計算性能和成本上具有無可替代的優勢,事實上已成為當前網際網路企業主流的大數據分析平臺。本文主要介紹一種基於Hadoop平臺的多維分析和數據挖掘平臺架構。

大數據分析的分類

Hadoop平臺對業務的針對性較強,為了讓你明確它是否符合你的業務,現粗略地從幾個角度將大數據分析的業務需求分類,針對不同的具體需求,應採用不同的數據分析架構。

  • 按照數據分析的實時性,分為實時數據分析和離線數據分析兩種。

實時數據分析一般用於金融、移動和網際網路B2C等產品,往往要求在數秒內返回上億行數據的分析,從而達到不影響用戶體驗的目的。要滿足這樣的需求,可以採用精心設計的傳統關係型資料庫組成並行處理集群,或者採用一些內存計算平臺,或者採用HDD的架構,這些無疑都需要比較高的軟硬體成本。目前比較新的海量數據實時分析工具有EMC的Greenplum、SAP的HANA等。

對於大多數反饋時間要求不是那麼嚴苛的應用,比如離線統計分析、機器學習、搜尋引擎的反向索引計算、推薦引擎的計算等,應採用離線分析的方式,通過數據採集工具將日誌數據導入專用的分析平臺。但面對海量數據,傳統的ETL工具往往徹底失效,主要原因是數據格式轉換的開銷太大,在性能上無法滿足海量數據的採集需求。網際網路企業的海量數據採集工具,有Facebook開源的Scribe、LinkedIn開源的Kafka、淘寶開源的Timetunnel、Hadoop的Chukwa等,均可以滿足每秒數百MB的日誌數據採集和傳輸需求,並將這些數據上載到Hadoop中央系統上。

  • 按照大數據的數據量,分為內存級別、BI級別、海量級別三種。

這裡的內存級別指的是數據量不超過集群的內存最大值。不要小看今天內存的容量,Facebook緩存在內存的Memcached中的數據高達320TB,而目前的PC伺服器,內存也可以超過百GB。因此可以採用一些內存資料庫,將熱點數據常駐內存之中,從而取得非常快速的分析能力,非常適合實時分析業務。圖1是一種實際可行的MongoDB分析架構。

圖1 用於實時分析的MongoDB架構

MongoDB大集群目前存在一些穩定性問題,會發生周期性的寫堵塞和主從同步失效,但仍不失為一種潛力十足的可以用於高速數據分析的NoSQL。

此外,目前大多數服務廠商都已經推出了帶4GB以上SSD的解決方案,利用內存+SSD,也可以輕易達到內存分析的性能。隨著SSD的發展,內存數據分析必然能得到更加廣泛的

應用。

BI級別指的是那些對於內存來說太大的數據量,但一般可以將其放入傳統的BI產品和專門設計的BI資料庫之中進行分析。目前主流的BI產品都有支持TB級以上的數據分析方案。種類繁多,就不具體列舉了。

海量級別指的是對於資料庫和BI產品已經完全失效或者成本過高的數據量。海量數據級別的優秀企業級產品也有很多,但基於軟硬體的成本原因,目前大多數網際網路企業採用Hadoop的HDFS分布式文件系統來存儲數據,並使用MapReduce進行分析。本文稍後將主要介紹Hadoop上基於MapReduce的一個多維數據分析平臺。

根據不同的業務需求,數據分析的算法也差異巨大,而數據分析的算法複雜度和架構是緊密關聯的。舉個例子,Redis是一個性能非常高的內存Key-Value NoSQL,它支持List和Set、SortedSet等簡單集合,如果你的數據分析需求簡單地通過排序,鍊表就可以解決,同時總的數據量不大於內存(準確地說是內存加上虛擬內存再除以2),那麼無疑使用Redis會達到非常驚人的分析性能。

還有很多易並行問題(Embarrassingly Parallel),計算可以分解成完全獨立的部分,或者很簡單地就能改造出分布式算法,比如大規模臉部識別、圖形渲染等,這樣的問題自然是使用並行處理集群比較適合。

而大多數統計分析,機器學習問題可以用MapReduce算法改寫。MapReduce目前最擅長的計算領域有流量統計、推薦引擎、趨勢分析、用戶行為分析、數據挖掘分類器、分布式索引等。

圖2 RCFile的行列混合存

 

面對大數據OLAP分析的一些問題

OLAP分析需要進行大量的數據分組和表間關聯,而這些顯然不是NoSQL和傳統資料庫的強項,往往必須使用特定的針對BI優化的資料庫。比如絕大多數針對BI優化的資料庫採用了列存儲或混合存儲、壓縮、延遲加載、對存儲數據塊的預統計、分片索引等技術。

Hadoop平臺上的OLAP分析,同樣存在這個問題,Facebook針對Hive開發的RCFile數據格式,就是採用了上述的一些優化技術,從而達到了較好的數據分析性能。如圖2所示。

然而,對於Hadoop平臺來說,單單通過使用Hive模仿出SQL,對於數據分析來說遠遠不夠,首先Hive雖然將HiveQL翻譯MapReduce的時候進行了優化,但依然效率低下。多維分析時依然要做事實表和維度表的關聯,維度一多性能必然大幅下降。其次,RCFile的行列混合存儲模式,事實上限制死了數據格式,也就是說數據格式是針對特定分析預先設計好的,一旦分析的業務模型有所改動,海量數據轉換格式的代價是極其巨大的。最後,HiveQL對OLAP業務分析人員依然是非常不友善的,維度和度量才是直接針對業務人員的分析語言。

而且目前OLAP存在的最大問題是:業務靈活多變,必然導致業務模型隨之經常發生變化,而業務維度和度量一旦發生變化,技術人員需要把整個Cube(多維立方體)重新定義並重新生成,業務人員只能在此Cube上進行多維分析,這樣就限制了業務人員快速改變問題分析的角度,從而使所謂的BI系統成為死板的日常報表系統。

使用Hadoop進行多維分析,首先能解決上述維度難以改變的問題,利用Hadoop中數據非結構化的特徵,採集來的數據本身就是包含大量冗餘信息的。同時也可以將大量冗餘的維度信息整合到事實表中,這樣可以在冗餘維度下靈活地改變問題分析的角度。其次利用Hadoop MapReduce強大的並行化處理能力,無論OLAP分析中的維度增加多少,開銷並不顯著增長。換言之,Hadoop可以支持一個巨大無比的Cube,包含了無數你想到或者想不到的維度,而且每次多維分析,都可以支持成千上百個維度,並不會顯著影響分析的性能。

圖3 MDX→MapReduce簡略示意圖

因此,我們的大數據分析架構在這個巨大Cube的支持下,直接把維度和度量的生成交給業務人員,由業務人員自己定義好維度和度量之後,將業務的維度和度量直接翻譯成MapReduce運行,並最終生成報表。可以簡單理解為用戶快速自定義的「MDX」(多維表達式,或者多維立方體查詢)語言→MapReduce的轉換工具。同時OLAP分析和報表結果的展示,依然兼容傳統的BI和報表產品。如圖3所示。

圖3可以看出,在年收入上,用戶可以自己定義子維度。另外,用戶也可以在列上自定義維度,比如將性別和學歷合併為一個維度。由於Hadoop數據的非結構化特徵,維度可以根據業務需求任意地劃分和重組。

圖4 Hadoop多維分析平臺架構圖

 

一種Hadoop多維分析平臺的架構

整個架構由四大部分組成:數據採集模塊、數據冗餘模塊、維度定義模塊、並行分析模塊。如圖4所示。

數據採集模塊採用了Cloudera的Flume,將海量的小日誌文件進行高速傳輸和合併,並能夠確保數據的傳輸安全性。單個collector宕機之後,數據也不會丟失,並能將agent數據自動轉移到其他的colllecter處理,不會影響整個採集系統的運行。如圖5所示。

數據冗餘模塊不是必須的,但如果日誌數據中沒有足夠的維度信息,或者需要比較頻繁地增加維度,則需要定義數據冗餘模塊。通過冗餘維度定義器定義需要冗餘的維度信息和來源(資料庫、文件、內存等),並指定擴展方式,將信息寫入數據日誌中。在海量數據下,數據冗餘模塊往往成為整個系統的瓶頸,建議使用一些比較快的內存NoSQL來冗餘原始數據,並採用儘可能多的節點進行並行冗餘;或者也完全可以在Hadoop中執行批量Map,進行數據格式的轉化。

圖5 採集模塊
圖6 核心模塊的邏輯
圖7 MapReduce WorkFlow例子

維度定義模塊是面向業務用戶的前端模塊,用戶通過可視化的定義器從數據日誌中定義維度和度量,並能自動生成一種多維分析語言,同時可以使用可視化的分析器通過GUI執行剛剛定義好的多維分析命令。

並行分析模塊接受用戶提交的多維分析命令,並將通過核心模塊將該命令解析為Map-Reduce,提交給Hadoop集群之後,生成報表供報表中心展示。

核心模塊是將多維分析語言轉化為MapReduce的解析器,讀取用戶定義的維度和度量,將用戶的多維分析命令翻譯成MapReduce程序。核心模塊的具體邏輯如圖6所示。

圖6中根據JobConf參數進行Map和Reduce類的拼裝並不複雜,難點是很多實際問題很難通過一個MapReduce Job解決,必須通過多個MapReduce Job組成工作流(WorkFlow),這裡是最需要根據業務進行定製的部分。圖7是一個簡單的MapReduce工作流的例子。

MapReduce的輸出一般是統計分析的結果,數據量相較於輸入的海量數據會小很多,這樣就可以導入傳統的數據報表產品中進行展現。

結束語

當然,這樣的多維分析架構也不是沒有缺點。由於MapReduce本身就是以蠻力去掃描大部分數據進行計算,因此無法像傳統BI產品一樣對條件查詢做優化,也沒有緩存的概念。往往很多很小的查詢需要「興師動眾」。儘管如此,開源的Hadoop還是解決了很多人在大數據下的分析問題,真可謂是「功德無量」。

Hadoop集群軟硬體的花費極低,每GB存儲和計算的成本是其他企業級產品的百分之一甚至千分之一,性能卻非常出色。我們可以輕鬆地進行千億乃至萬億數據級別的多維統計分析和機器學習。

6月29日的Hadoop Summit 2011上,Yahoo!剝離出一家專門負責Hadoop開發和運維的公司Hortonworks。Cloudera帶來了大量的輔助工具,MapR帶來了號稱三倍於Hadoop MapReduce速度的並行計算平臺。Hadoop必將很快迎來下一代產品,屆時其必然擁有更強大的分析能力和更便捷的使用方式,從而真正輕鬆面對未來海量數據的挑戰。

相關焦點

  • 對比解讀五種主流大數據架構的數據分析能力
    隨著大數據技術的發展,數據挖掘、數據探索等專有名詞的曝光度越來越高,但是在類似於Hadoop系列的大數據分析系統大行其道之前,數據分析工作已經歷了長足的發展,尤其是以BI系統為主的數據分析,已經有了非常成熟和穩定的技術方案和生態系統,對於BI系統來說,大概的架構圖如下:
  • 大數據架構流程圖
    流程圖來源:ioDraw.com大數據管理數據處理過程圖大數據(big data),指無法在一定時間範圍內用常規軟體工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察力。大數據處理的主要流程包括數據收集、數據存儲、數據處理、數據應用等主要環節。隨著業務的增長,大量和流程、規則相關的非結構化數據也爆發式增長。平臺數據架構流程圖標準大數據平臺架構,標準大數據平臺架構,大數據平臺架構,數據倉庫,數據集市,大數據平臺層級結構,數據挖掘,舉報,包含該模版的分享。
  • 【CTO講堂】Growth Hacking背後,數據分析平臺的架構調整
    為了幫助IT從業者職業之路擁有更多收穫,在諸多C粉的殷切期待下,由 CTO俱樂部打造的CTO線上講堂自登場以來獲得大家好評。本期邀請諸葛io創始人&CEO孔淼帶來「Growth Hacking背後,數據分析平臺的架構調整 」的主題分享。歡迎加入CTO講堂微信群與業界大咖零距離溝通,11月6日本期講堂報名方式拖至文末查看。
  • 浪潮大數據分析平臺專題及常見問題 - CSDN
    從發展路線角度看,業界將大數據產業劃分為三大陣營:一類是以IB M、微軟、惠普、ORACLE,EM C等為代表的傳統仃領導廠商,通過「硬體十軟體十數據」整體解決方案向用戶提供以平臺為核心的完備的基礎架構與服務,並通過密集地併購大數據分析企業,以迅速增強和擴展在大數據分析領域的實力和市場份額;一類是以SA S, SPSS等為代表的專業商務智能公司,專注於智能數據分析;還有一類是以G
  • 貝殼總監分享數據中臺與大數據平臺架構,數位化房企早該如此
    現在很多公司搞大數據的套路是先找一個總監,總監再找一個架構師,然後瞅準最先進的數據中臺搞。這種公司各位最好有多遠躲多遠。這部分略顯薄弱,缺少數據質量分析、評估、驗證和數據質量問題管理。我估摸著這邊還是以先滿足業務需求為準吧,反正數據錯了有人會找上門來的。
  • 七牛雲「機器數據分析平臺 Pandora」榮獲金鈴獎「數據平臺增效獎」
    此次活動由零點有數主辦,上海市普陀區人民政府指導,上海天地軟體園協辦,中國科技諮詢協會、中國軟體協會大數據分會、上海大數據聯盟、上海大數據應用創新中心、ITShare智享會協辦。活動以「面對難題,高舉數據智能解法的大旗」為主題,各方數據智能前沿人才代表共同研討數據智能時代的創新之道、數據智能解法的創新探索與實踐反思,並分享了數據智能應用的案例。
  • 大數據入門:大數據環境下的數據倉庫
    進入大數據時代,大數據存儲的解決方案,往往涉及到數據倉庫的選型策略。從傳統時期的數據倉庫,到大數據環境下的數據倉庫,其核心的技術架構是在隨著最新技術趨勢而變化的。今天的大數據入門分享,我們就來講講,大數據環境下的數據倉庫。
  • 民生銀行大數據體系架構設計與演進
    在大數據體系化規劃下,以服務用戶為目標,以解決問題為抓手逐步推動大數據技術落地。民生銀行大數據整體規劃如下圖:  同時隨著數據中臺的成熟,原始數據的積累,基於數據的機器學習人工智慧分析等場景逐步湧現,為了降低新技術的使用門檻,快速迭代場景下的機器學習算法模型,在這個階段同步建設了可視化的機器學習平臺,對接數據中臺,為個性化推薦、風險預警及運營多個領域內的細分場景提供服務能力輸出。
  • 宇視全數據智慧監控架構:智能分析新時代
    2015年10月,宇視推出全數據智慧監控架構,以高性能計算、多維信息採集、開放合作、大數據云存儲為核心理念,集成算法深度學習、3D建模、分布式計算等業界領先技術,採用新一代開放式智能框架,技術維度呈現出高融合、高效率和場景定製化等優勢特點,產業維度進一步演進生態合作
  • 新核心業務系統數據架構規劃與數據治理
    在這個背景下,公司於13年立項,15年開始全面推動新核心業務系統的建設。我們為這個系統設計了全新的IT架構,包括數據架構、應用架構和技術架構。大家從這個應用架構圖上可以看出來,新核心項目有眾多的項目群,包括渠道接入、運營支撐、基礎應用平臺、數據管理、數據應用、決策分析以及項目實施,每個域裡又包含多個子系統。我們的數據架構規劃和數據治理標準化的實踐就是在這個背景下展開的。
  • 搭建一套大數據實時分析平臺整體方案設計
    如果是公司需要進行大數據分析,那麼還要研究以下幾個問題:為什麼需要搭建大數據分析平臺?要解決什麼業務問題?需要什麼樣的分析?數據量有多少?是否有實時分析的需求?是否有BI報表的需求?—這裡舉一個典型的場景:公司之前採用Oracle或MySQL搭建的業務資料庫,而且有簡單的數據分析,或者可能採購了BI系統,就是直接用業務系統資料庫進行支持的,現在隨著數據量越來越大,那麼就需要採用大數據技術進行擴容。
  • 基於Flume、Kafka和Storm實現企業大數據平臺的實時數據採集
    近年來,隨著企業信息化建設的飛速發展,大數據應用的問題越來越備受關注。很多企業投入大量的人力、物力和財力建設企業大數據平臺,平臺建設工作涵蓋數據採集、數據處理、數據存儲、數據服務、數據展示以及數據質量管理各個環節。
  • Xscope時空大數據可視化分析平臺
    承建單位:北京空擎信息技術有限公司  創新摘要  XScope是一個專注於時空大數據可視化分析決策服務平臺,該平臺以三維空間可視化交互為基礎,以時空大數據管理工具為支撐,融合了多源空間數據源、資料庫、地圖投影 、圖元表達、對象化編輯管理、空間分析等,並以3D渲染引擎作為輸出首選,除此以外,加入了交互呈現一致性的邏輯調度管理方法
  • 大數據Lambda架構概念及應用
    大數據Lambda架構概念及應用,Lambda Architecture 概念Mathan Marz的大作Big Data: Principles and best practices of scalable real-time data systems
  • 一文讀懂數據架構的進化史
    近期看到很多企業在設計自己的數據平臺,以及選型一些數據分析工具,正好拜讀了數據倉庫之父的《數據架構:大數據、數據倉庫以及Data Vault》一書,有些許感觸,就來聊一下個人思考吧。首先從企業信息化發展階段時,數據平臺結構的程度來看。
  • 實例詳解對Serverless SQL大數據分析技術的應用
    近年來, Serverless作為一種新型的網際網路架構直接或間接推動了雲計算的發展,同時基於Serverless的輕量計算也成為了新的技術熱點,而Serverless SQL大數據分析產品就在此背景下應運而生。
  • 大數據管理:PB、EB級數據存儲和分析
    如果你是一位存儲管理員的話,你或許會在管理你自己環境中的大數據時遇到困惑。供應商口中的大數據存儲和大數據分析非常相似,因此你很容易理解成這兩者是相關的——大數據存儲是用於大數據分析的。
  • 大數據+微服務分布式架構平臺技術選型說明四
    微服務架構主要技術組件特點服務發現與註冊伺服器當某個UI需要調用很多微服務時,就要解決微服務在Docker或其他一些雲環境下部署引起的動態ip和埠號問題,不可能在一個頁面中硬編碼幾十甚至幾百個ip和埠號;同樣的,被調用的微服務如果需要處理成高可用
  • 七牛雲陳超:七牛雲機器數據分析平臺 Pandora的最佳實踐
    9 月 10 日晚,七牛雲(www.qiniu.com)主辦的「雲加數據,智驅未來」數據科學系列論壇如期舉行。在直播中,七牛雲產品與研發副總裁陳超為我們帶來了主題為《七牛雲機器數據分析平臺 Pandora 最佳實踐》的精彩演講。以下是演講實錄。
  • 大數據分析一般用什麼工具分析
    隨著大數據越來越深入人心,大數據這個詞也越來越火,同時大數據應用的領域也越來越廣泛,那麼大數據分析工具都有哪些呢? 大數據是一個含義廣泛的術語,是指數據集,如此龐大而複雜的,他們需要專門設計的硬體和軟體工具進行處理。該數據集通常是萬億或EB的大小。這些數據集收集自各種各樣的來源:傳感器、氣候信息、公開的信息、如雜誌、報紙、文章。