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