我們已經進入了“大數據時代”,2011 IDC Digital Universe報告說,數據增長的速度已經超過了摩爾定律(Moore's Law)。這種趨勢表明企業處理數據模式的轉變,即隔離的孤島正在被大型集群服務器所取代,這種服務器集群將數據與計算資源保存在一起。
從另一種角度來看這種模式轉變,這種轉變表明數據增長的速度和數據量需要一種新的網絡計算方法。在這方面,谷歌就是一個很好的例子。早在1998年谷歌推出測試版搜索引擎時,雅虎公司占主導地位,其他競爭者還包括infoseek、Lycos等,而在短短兩年內,谷歌就成為主導搜索引擎供應商。直到2003年,谷歌發布一份關于MapReduce的文件,我們才有幸窺見到谷歌的后端架構。
谷歌的架構顯示了該公司如何能夠索引更多數據,以更快地獲得搜索結果,以及比所有競爭對手更有效和更具成本效益地獲取這些結果。谷歌做出的轉變是將復雜的數據分析任務分成簡單的子任務,這些子任務在并行商品服務器中執行。單獨進程被用于映射Map這些數據,然后將其縮小Reduce到中期或最終結果。這種MapReduce框架最終通過Apache的Hadoop供企業使用。
Hadoop簡史
在2003年閱讀了谷歌的文件后,雅虎工程師Doug Cutting開發了基于Java的MapReduce,將其命名為Hadoop。在2006年,Hadoop成為Apache軟件基金會Lucene(一種流行的全文檢索庫)的子項目,并在2008年成為頂級Apache項目。
從本質上講,Hadoop提供了對大型商品計算機集群間的捕捉、組織、存儲、搜索、共享、分析和可視化不同數據源(結構化、半結構化和非結構化),并能夠從幾十臺服務器擴展到上千臺服務器,每臺服務器都提供本地計算和存儲。
Hadoop包含兩個基本組成部分:首先是作為主要存儲系統的Hadoop分布式文件系統(HDFS),HDFS復制和分發源數據塊到服務器集群的計算節點,以由一個或多個應用程序進行分析。其次是MapReduce,它創建了一個軟件框架和編程模型,用于編寫能夠并行處理大量分布式數據的應用程序。
Apache Hadoop的開源性質創建了一個生態系統,使其功能、性能、可靠性和易用性都不斷進步。
保持簡單性和可擴展性
在名為“數據不合理的有效性”的文章中,來自谷歌的研究人員將簡單的物理方程式(例如E = mc2)與其他學科對比,并指出,“涉及人類而非基本粒子的科學更適合使用簡單的數學算法”。
事實上,簡單的公式完全能夠解釋復雜的自然世界,以及理解難以捉摸的人類行為,這也是為什么Hadoop普及的原因。
研究人員發現,相對簡單的算法適用于大規模數據集,并能產生驚人的結果。其中一個例子就是scene completion技術,它使用一個算法來消除圖片上的某物(例如汽車),然后從成千上萬的圖片資料庫中尋找合適的照片進行“修補”,當圖片資料庫的照片增加到數百萬時,該算法表現不佳。當擁有足夠的數據,這種簡單的算法表現極為出色。尋找模式以及“修補”技術是當今很多數據分析應用程序的共同主題。
數據分析還面臨著另一個固有復雜性:非結構化數據與非結構化數據的增加。非結構化數據(例如日志文件、社交媒體、視頻等)的規模和重要性同時在增加,并且有些結構化在經過一些變化后也失去了結構。傳統分析技術在產生結果前需要對非結構化和半結構化數據進行大量預處理,并且如果預處理存在某種缺陷的話,產生的結果可能是錯誤的。
Hadoop采用簡單算法來分析原始形式的非結構化、半結構化和結構化數據以及產生有意義結果的能力是前所未有的,目前來看,也是無與倫比的。MapReduce使我們能夠以漸進的方式來分析數據,而必須要進行復雜的數據轉換或者其他數據預處理,或提前創建任何模式或整合數據。
數據分析的價格和性能
Hadoop不僅提供卓越的數據分析功能和結果,還比傳統數據分析工具更具成本效益。其原因是傳統數據分析工具的擴展數據分析能力主要遵循80/20規則:最初的小努力和付出能夠帶來大收益,但隨著數據集發展為大數據,這種回報會減少。
形成鮮明對比的是,Hadoop可以線性擴展,這是有效且符合成本效益的數據分析的關鍵因素。隨著數據集的增長,傳統數據分析環境規模呈指數增長,為獲取洞察力需要投入更多額外費用,這最終讓人望而卻步。而對于Hadoop,服務器集群能夠隨著數據集數量和規模的增長而直接附加存儲線性地擴展規模。
Hadoop的這些優勢是其在基于web的企業和數據密集型企業快速普及的主要原因。
然而,Hadoop部署面臨的主要挑戰仍然是其文件系統。HDFS是append-only(只允許在這個文件之后追加數據)存儲要求數據裝在Hadoop集群中,然而再輸出后處理以供不支持HDFS API的其他應用程序使用。
Hadoop在較大型企業部署的另一個障礙是需要采取使環境可靠的特殊措施。需要不斷監控Hadoop以確保單點故障不會導致災難,在數據丟失的情況下,數據會被重新加載到Hadoop集群。
沖破障礙
Hadoop的這些問題已經成為過去式。開源社區創造了一個充滿活力的生態系統,使Hadoop不斷完善。一些公司現在正在提供基于開源Hadoop的商業產品。
越來越多商業Hadoop產品的推出推動了Hadoop的更廣泛普及。這些商業產品使Hadoop更易于整合到企業,以及提供企業級的性能和可靠性。實現這些改進的方法之一是使用現有的標準通信協議作為基礎,來使傳統環境和Hadoop環境無縫集成。
結束還是剛剛開始?
數據分析模式正在轉變,這為企業帶來了真正的機會。Hadoop讓所有企業能夠通過這種模式轉變所提供的洞察力優勢來獲得顯著的競爭優勢。
Hadoop無疑是一個改變游戲規則的技術,并且隨著企業級商業Hadoop產品的推出,Hadoop本身也正在發生轉變。這些下一代解決方案正引領新的數據分析模式。