隨著互聯網、移動互聯網以及物聯網的迅速發展,我們已經進入了一個海量的大資料時代,而目前對於這些海量的資料分析處理已經成為了一非常緊迫而且大的需要。
Hadoop的伸縮性、健壯性、計算性能和成本有著無法代替的優勢,事實上已經作為了當今互聯網企業最主流的大資料處理平臺。
大資料處理的分析分類
Hadoop平臺對於業務的針對性相當強,為了能夠讓你瞭解是否和你的業務符合,現在從幾個角度來將大資料處理業務進行分類,根據需求的不同選擇不同的資料分析架構。
根據資料分析的即時性,主要分為離線資料和即時資料分析
即時資料分析處理主要是用在金融、互聯網等行業,在需求上一般都是返回上億的資料處理,以達到不影響使用者體驗的目的。 為了滿足這種需求,可以對於傳提供的資料組庫進行精心的設計,並組成並行處理集群,還可以採用一些記憶體計算平臺,比如HDD的架構,但是這樣都會提高軟硬體的成本。 對於目前比較心的即時海量資料的分析工具主要為EMC的Greenplum、SAP的HANA等。
針對于資料處理返回時間要求沒有這麼高的應用,蔽日離線統計分析處理、機器學習、搜尋引擎的反響索引計算等,一般都採用離線分析的方式。 通過採集資料工具將日誌資料導入到資料分析平臺裡。 但面對海量資料,傳統的ETL工具往往徹底失效,主要原因是資料格式轉換的開銷太大,在性能上無法滿足海量資料的採集需求。 互聯網企業的海量資料獲取工具,有Facebook開源的Scribe、LinkedIn開源的Kafka、淘寶開源的Timetunnel、Hadoop的Chukwa等,均可以滿足每秒數百MB的日誌資料獲取和傳輸需求, 並將這些資料上載到Hadoop中央系統上。
根據大資料的資料存儲量分為記憶體級別、BT級別、海量級別三種
記憶體級別主要是資料量最大值在集群記憶體的範圍內。 不要小看記憶體的容量,Facebook的緩存在記憶體裡的資料就有320TB之多,而目前PC伺服器的記憶體也可以超過一百個G。 因此對於記憶體級別採用記憶體資料庫,可以將熱點資料庫常駐在記憶體裡面,從而獲得迅速的分析能力,對於即時業務分析非常合適。 下圖就是是一種實際可行的MongoDB分析架構。
MongDB大集群在穩定性上面存在一些問題,會發生一些週期性的堵塞以及同步失敗,但依然可以作為一種潛力很大而且可以用於告訴資料處理的NoSQL。
BT級別主要是針對那些記憶體太大的資料量,一般可以將其放到傳統的BI產品和專門設計的資料庫裡面進行分析。 目前主流的BI產品都有支援TB級以上的資料分析方案。 種類繁多,就不具體列舉了。
海量級別指的是對於資料庫和BI產品已經完全失效或者成本過高的資料量。 海量資料級別的優秀企業級產品也有很多,但基於軟硬體的成本原因,目前大多數互聯網企業採用Hadoop的HDFS分散式檔案系統來存儲資料,並使用MapReduce進行分析。 本文稍後將主要介紹Hadoop上基於MapReduce的一個多維資料分析平臺。