一種hadoop多維分析平台的架構
整個架構由四大部分組成:資料採集模組、資料冗餘模組、維度定義模組、並行分析模組。如圖4所示。
圖4 hadoop多維分析平台架構圖
資料採集模組採用了cloudera的flume,將海量的小日誌檔案進行高速傳輸和合併,並能夠確保資料的傳輸安全性。單個collector宕機之後,資料也不會丟失,並能將agent資料自動轉移到其他的colllecter處理,不會影響整個採集系統的執行。如圖5所示。
圖5 採集模組
資料冗餘模組不是必須的,但如果日誌資料中沒有足夠的維度資訊,或者需要比較頻繁地增加維度,則需要定義資料冗餘模組。通過冗餘維度定義器定義需要冗餘的維度資訊和**(資料庫、檔案、記憶體等),並指定擴充套件方式,將資訊寫入資料日誌中。在海量資料下,資料冗餘模組往往成為整個系統的瓶頸,建議使用一些比較快的記憶體nosql來冗餘原始資料,並採用盡可能多的節點進行並行冗餘;或者也完全可以在hadoop中執行批量map,進行資料格式的轉化。
維度定義模組是面向業務使用者的前端模組,使用者通過視覺化的定義器從資料日誌中定義維度和度量,並能自動生成一種多維分析語言,同時可以使用視覺化的分析器通過gui執行剛剛定義好的多維分析命令。
並行分析模組接受使用者提交的多維分析命令,並將通過核心模組將該命令解析為map-reduce,提交給hadoop集群之後,生成報表供報表中心展示。
核心模組是將多維分析語言轉化為mapreduce的解析器,讀取使用者定義的維度和度量,將使用者的多維分析命令翻譯成mapreduce程式。核心模組的具體邏輯如圖6所示。
圖6 核心模組的邏輯
圖6中根據jobconf引數進行map和reduce類的拼裝並不複雜,難點是很多實際問題很難通過乙個mapreduce job解決,必須通過多個mapreduce job組成工作流(workflow),這裡是最需要根據業務進行定製的部分。圖7是乙個簡單的mapreduce工作流的例子。
圖7 mapreduce workflow例子
mapreduce的輸出一般是統計分析的結果,資料量相較於輸入的海量資料會小很多,這樣就可以匯入傳統的資料包表產品中進行展現。
結束語
當然,這樣的多維分析架構也不是沒有缺點。由於mapreduce本身就是以蠻力去掃瞄大部分資料進行計算,因此無法像傳統bi產品一樣對條件查詢做優化,也沒有快取的概念。往往很多很小的查詢需要「興師動眾」。儘管如此,開源的hadoop還是解決了很多人在大資料下的分析問題,真可謂是「功德無量」。
hadoop集群軟硬體的花費極低,每gb儲存和計算的成本是其他企業級產品的百分之一甚至千分之一,效能卻非常出色。我們可以輕鬆地進行千億乃至萬億資料級別的多維統計分析和機器學習。
6月29日的hadoop summit 2011上,yahoo!剝離出一家專門負責hadoop開發和運維的公司hortonworks。cloudera帶來了大量的輔助工具,mapr帶來了號稱三倍於hadoop mapreduce速度的平行計算平台。hadoop必將很快迎來下一代產品,屆時其必然擁有更強大的分析能力和更便捷的使用方式,從而真正輕鬆面對未來海量資料的挑戰。
張玉 tel:(010)68476606】
大資料平台搭建 基於Hadoop的資料分析平台
網際網路的發展,帶來了各種資料的爆發式增長,所有接入網際網路的相關操作行為,都化為虛擬的資料被記錄了下來。大資料時代的帶來,乙個明顯的變化就是全樣本資料分析,面對tb pb級及以上的資料規模,hadoop成為主流選擇。企業要進行大規模的資料分析,基於開源的hadoop及其生態圈來搭建起大資料系統平台...
超越Hadoop的大資料分析之前言
本文翻譯自 big data analytics beyond hadoop 譯者 吳京潤 校對 方騰飛 我試圖給人們學習大資料留下的一點深刻印象 儘管apache hadoop很有用,而且是一項非常成功的技術,但是這一觀點的前提已經有些過時了。考慮一下這樣一條時間線 由谷歌實現的mapreduce...
《Hadoop金融大資料分析》讀書筆記
hadoop金融大資料分析 hadoop for finance essentials 使用hadoop,是因為資料量大 資料量如此之多,以至於無法用傳統的資料處理工具和應用來處理的資料稱主大資料 3v定義 即 大量volume,多樣variety,高速velocity是與大資料相關的三個屬性或維度...