Hadoop真的適合你嗎?
許多公司都在為管理海量數據不斷努力。以前,他們都使用數據倉庫平臺,用這種傳統架構在處理來自內部和外部數據源的數據時有很大困難,這些數據的結構和內容類型通常非常多樣化,但Hadoop可以對此場景提供幫助。Hadoop是一款分布式處理架構,專門用來處理復雜的海量大數據,處理結構化、非結構化和半結構化數據混雜的場景。
Hadoop的部分優勢在于,它有許多種開源組件和相關工具,可以完成數據捕獲、處理、管理和分析工作。為了幫助用戶利用好該框架,許多供應商提供了商業版Hadoop分布式產品,它們在Hadoop基礎之上提供了性能和功能方面的擴展,并提供對該框架的維護和支持服務。
Hadoop分布式應用的案例場景
Hadoop運行在商用服務器集群環境中,這種環境通常用來支持數據分析而不是聯機事務處理應用。有幾種更加通用的分析應用案例可以很好地展示Hadoop分布式數據處理和并行計算模型:
- 業務智能應用要從事務處理系統和組織資產系統中捕獲流式數據,監視性能水平,應用預測分析做預備維護或者處理變更。
- Web分析本來是為了幫助公司理解站點訪問者的在線活動情況,通過檢查Web服務器日志來檢測系統性能問題,發掘營銷信息。
- 安全和風險管理,例如:運行分析模型把事務數據與欺詐活動模式知識庫做比較,利用持續網絡安全分析識別新出現的可疑行為。
- 營銷優化,包括利用大量網絡點擊和在線銷售數據,再結合客戶檔案信息設計形成推薦引擎提供實時產品捆綁銷售建議。
- 物聯網應用,例如從制造業設備、管道和所謂智能建筑安置的傳感器終端獲取數據做分析,這些傳感器會持續生成并廣播關于狀態和性能的信息。
- 語義分析和品牌保護,可能需要捕獲流式社交媒體數據并分析文本,識別出有意見的客戶提出的問題并快速解決。
- 大數據收集、處理和整合場景,例如捕獲衛星圖像和地理空間數據。
- 數據暫存,Hadoop用于做***手數據的存儲,然后才會做整合、清洗和轉換為更加結構化的格式,未來加載到數據倉庫或分析數據庫用于分析。
Hadoop分布式應用的實現方式
支持以上這些應用場景的應用都可以基于Hadoop構建,可以使用一些典型的實現方法。說明如下:
數據湖。因為Hadoop提供了線性擴展能力,集群架構中很容易加入新數據節點做處理和存儲,因此它提供了非常自然的平臺用于捕獲和管理原始數據文件?;谶@一特性,許多用戶把Hadoop系統用作捕獲所有數據的平臺,創造了數據湖的概念。
增強的數據倉庫平臺。Hadoop分布式存儲還可以用于擴展數據,供數據倉庫環境訪問用于分析。最頻繁使用的“熱數據”存儲在數據倉庫中,而不太頻繁的“冷數據”可以提交到更高延時的存儲,例如Hadoop分布式文件系統。這種方法依賴于數據倉庫與Hadoop集成的緊耦合。
大規模批量計算引擎。如果配置了數據和計算節點,Hadoop就變成了大規模并行處理平臺,可以用于批量處理應用做數據操作和分析。數據標準化就是很好的例子,可以對數據集應用轉換任務為分析做準備。算法驅動的分析應用(例如數據挖掘、機器學習、模式分析和預測模型)都可以用到Hadoop的批處理能力,因為他們都需要針對海量分布式數據文件并行處理,并疊加并行處理結果后提供最終結果集。
事件流分析處理引擎。Hadoop環境還可以配置為實時或準實時處理收到的數據流。例如,客戶感受分析應用可以把多個通訊代理并行運行于Hadoop集群上,每個代理都有一套處理規則。
選擇Hadoop的優勢:它真的適合你嗎?
Hadoop是低成本高性能的計算框架,可以處理各種IT和業務場景中組織對擴展處理能力或者擴展數據管理能力的需求。下面總結一下應用需求的特點以及建議選擇的基于Hadoop分布式應用的數據管理平臺。
獲取和處理大數據規范集、大規模非結構化數據和流式數據。例如,捕獲包含數十億在線事件信息的Web服務器日志;跨不同數據集索引億級文檔;從眾多渠道持續拉取數據流(諸如:社交媒體渠道、證券市場數據、新聞發布源和專家團隊發布的內容等渠道)。
- 排除性能障礙的需求。在傳統數據倉庫系統中,通常會有節流閥控制對數據的訪問、延時、可用性或者貸款限制來保障應用性能,這與需要處理的數據量有關。
- 針對性能的線性可擴展性。隨著數據量的增長和用戶數增加,環境性能可以隨著計算能力和存儲資源線性擴展是非常關鍵的能力,尤其是在應用程序適合并行計算的場景下更是如此。
- 結構化數據和非結構化數據的混合場景。應用程序需要使用不同數據源的數據,包括結構化、非結構化和半結構化的數據。例如:文本數據或者服務器日志數據。
- IT成本有效性。不需要花費購買高端服務器或者專門的硬件設備,系統架構師相信使用正常配置就可以達到可接受的性能。
Hadoop應用到企業中
盡管把Hadoop平臺整合到企業應用中是完全可行的,但使用Hadoop獲益仍然要考慮權衡。因為許多組織已經在傳統數據倉庫平臺上做了巨大投資,因此引入更新的技術可能會遇到一些阻力。在引入Hadoop分布式產品供應商之前,需要先解決潛在的障礙,評估集群規模和配置需求。
例如,要判斷Hadoop集群如何與組織的數據倉庫和分析策略融合,判斷是否可以增強現有數據倉庫功能甚至替換它。另外,要判斷整合和交互方面需要處理的問題,審查配置可替代物,包括是否可以更有利于實施內部Hadoop生態系統,或者基于云或者托管環境。此外,要確保你已經聘用了具備相應技能的員工或者對現有職員進行再培訓。Hadoop應用開發與傳統數據庫開發差異是很大的。