?最近幾年中,web 和企業已經見證了數據膨脹。這一現象有很多種原因,例如,便宜的 terabyte 量級的存儲硬件的商品化,隨著時間的推移已接近臨界規模的企業數據,以及允許輕松進行信息供應和交換的標準。
從企業的角度來說,日益增長的信息已經很難存儲在標準關系型數據庫甚至數據倉庫中。這些問題提到了一些在實踐中已存在多年的難題。例如:怎樣查詢一個 十億 行的表?怎樣跨越數據中心所有服務器上的所有日志來運行一個查詢?更為復雜的問題是,大量需要處理的數據是非結構化或者半結構化的,這就更難查詢了。
當數據以這種數量存在時,一個處理局限是要花費很多的時間來移動數據,Apache Hadoop 的出現解決了這些問題,用其獨一無二的方法將工作移到數據,而不是相反的移動。Hadoop 是一個集群技術,由兩個獨立但整合在一起的運行時組成:分布式文件系統(Hadoop Distributed File System,HDFS),提供數據冗余存儲;map/reduce,允許并行運行用戶提交的作業,處理存儲在 HDFS 中的數據。盡管 Hadoop 并不是對每個場景都適合,但是它提供了良好的性能效益。使用 Hadoop 時,社區發現它不僅僅可用于數據處理,也打開了各種有趣的數據分析的大門。
借助 Hadoop,我們可以線性擴展運行在商品硬件上的集群來集成更大更豐富的數據集。這些數據集提供新的透視圖,首先,在之前沒有整合的異構數據源上運行分 析,然后在同樣的數據上有規模地運行分析。這個結構有點類似于范式轉換(paradigm shift),正如 Flip Kromer(InfoChimps 創辦人之一)所描述的:“web 從一個對每件事都了解一點的場所發展成為對一件事了解其全部的場所”。Kromer 繼續以這個場景為例,有朝一日,棒球迷想要了解在過去 100 中每場比賽的細節(球員詳情、比賽得分、比賽場地)。如果要在同一時段為所有氣象站聯合數據集與共享位置值,就可以預測一個 38 歲的投手在 90 度的高溫的情況下、在 Wrigley Field 賽場的表現如何。
需要指出的重要一點是:Big Data 空間仍然相對較新,要利用這些機會,仍然有一些技術障礙。正如上面所提到的,數據在 Hadoop 中以 “作業” 形式處理,這些作業是使用一個名為 map/reduce 的范式、通過 Java? 編程語言編寫的。盡管開展了一些工作來促進 Hadoop 允許使用其他語言,但正確地理解如何分析業務問題,并將其分解成可以作為 map/reduce 作業運行的解決方案,仍然不是一個簡單的過程。
要真正利用 Hadoop 周圍的機會,就需要大量的支持技術來將 Hadoop 移出開發人員的視野,使其接近更廣泛的觀眾。
一個生態系統的出現提供了圍繞 Hadoop 的工具和支持。每個組件同其他組件一起提供很多方法(如下所示)來實現大多數用戶場景。
為了使用 Hadoop 來分析您的數據,您必須將數據放在 HDFS 上。為了做到這一點,您需要加載工具。Hadoop 本身也提供將文件從文件系統復制到 HDFS 的功能,反之也可以。對于更復雜的場景,您可以利用像 Sqoop(參見 參考資料 )這類工具,這是一個 SQL-to-HDFS 數據庫導入工具。另一種形式的加載工具是網絡爬蟲,例如 Apache Nutch,它抓取特定網站并將網頁存儲在 HDFS 上,這樣,網頁內容對于任何您想要使用的分析工具都是可用的。
實時數據是另一個潛在的信息源。您可以使用 Twitter4J 這類技術來連接 Twitter Streaming API 并直接將 tweets 以 JSON 格式持久存儲在 HDFS 上。
典型 Big Data 分析用例通常涉及同時查詢多個數據集。數據集來自不同的源,通常是企業(內部)已有數據和從 web(外部)獲得的數據的混合。一個內部信息的例子可能是數據中心的日志文件,外部信息可能是一些抓取的網站或從數據目錄下載的數據集。
數據目錄實現了用戶搜索數據集所必須的功能。除非您已經嘗試過,否則您不會意識到尋找大型數據集是多么地困難,特別是適合您正在運行的特定分 析場景的數據集。通常,用戶被迫抓取 web 或者挖掘社會媒體網站來建立他們自己的大型數據集。如果您很容易就能找到并下載您所感興趣的現存結構化數據集,將會節省許多時間。InfoChimps 這類公司提供一個目錄,在其中您可以根據類型或通過檢索找到特定數據集。另一個數據目錄的示例是 Amazon Public Data SetsIt。
如果您要只使用 Hadoop 來分析 HDFS 上存儲的數據,那么通常需要開發人員的技術來使用 Java 語言和 Hadoop map/reduce API 編寫作業。對于那些直接使用 API 的人員,您可以使用 Eclipse 中的 KarmaSphere 這類工具來利用從特定于 Hadoop 的 IDE 獲取的生產力。有一些替代方法支持聯合使用其他語言與 Hadoop Streaming 和 Hadoop Pipes,但仍然需要開發人員的技術。這為創建復雜度較低的定義和運行 map/reduce 作業的方法提供了機會。
那些熟悉的 shell 腳本和 UNIX? Pipes 的人可以考慮查看 WuKong,它允許您使用 Ruby 和 shell 腳本構建和運行作業。Apache Pig 和 Hive 是兩個數據分析師感興趣的技術,因為它們提供一個類似于 SQL 語句的查詢界面,在其中用戶可以使用高級語言表述如何構建和運行一個給定作業的分析。另一個更針對業務分析師的方法是 IBM? BigSheets,它提供一個基于瀏覽器的類似電子表格的可視呈現,用于定義、運行和可視化分析作業。
所有這些方法都利用擴展,通常稱為用戶自定義函數或宏,獲取用戶輸入的數據并將一個測量結構注入其中(語義上的或明確的),使得信息能夠以一 種類似于傳統分析方法的方式被處理和查詢。分析工具和導出工具就像是連體嬰兒,在您進行數據分析時,后者實際上本身就可以做一些對數據分析有幫助的事。
當您詢問一個 Big Data 問題(您的分析)時,通常會得到一個 Big Data 答案(生成的數據集)。經常會出現這種情況:答案太大,以至于人類無法閱讀和理解。如果這樣的話,提供可視的結果將是一個解決方案。例如,一個標記能夠過 濾一大部分結果,使人們立即可以識別出某些區域的數據值。另一個方法是將數據以特定的格式輸出,例如 SON、CSV、TSV 或 ATOM,使其可以為一個應用程序所使用。有趣的可視化比較常見,但是它們通常不能插入現有的 Hadoop 相關工具。這是一個新興空間,關于這方面,在未來的幾個月我們將能看到一些創新。
Apache Hadoop 是生態系統的核心。這是所有數據駐留的地方。這個生態系統的惟一約束是 Big Data 喜歡處于靜止狀態這個事實。這個約束可能會給移動大量數據的計算操作帶來嚴重的延遲,這就是為什么 map/reduce 如此高效的原因,因為它將工作移向數據。由于 Hadoop 可以橫向和縱向擴展,因此它也是云中的一個可行選擇,人們可以提供 Hadoop 集群、復制數據、運行作業、檢索輸出,以及在作業完成時解散集群。對于間歇運行的作業,這可以極大地節省購買和維護硬件的成本。
IBM 對 Apache Hadoopis 的前景感到興奮,并洞察到它可能是極其寶貴的。IBM 已經致力于 Hadoop 研究,有兩個技術預覽,可以在 Apache Hadoop 之上提供社區感興趣的附加特性。
Apache Hadoop 的 IBM 發行版 綁定了 IBM Java 技術,并針對 IBM Java 和 IBM 平臺進行測試。它包含一個基于 Web 的安裝向導,使安裝和配置 Hadoop 集群更為容易。這個向導使安裝和運行 Hadoop 需要花費的時間大大減少,能夠幫助那些在 Hadoop 之上構建解決方案和工具,以及直接使用 Hadoop、map/reduce 和 HDFS API 的開發人員。
對于分析感興趣的非程序設計人員,InfoSphere BigInsights 是一個新的 IBM 產品組合,其中包含一個稱為 BigSheets 的技術預覽。BigSheets 提供一個引人注目的可視化界面來聚集、分析和探索數據。BigSheets 是一個功能相當齊全的工具,它在 Apache Hadoop 之上提供了易配置的加載、分析和導出工具。
我們已經看到了目前的海量數據,以及開源社區是如何使用 Apache Hadoop 項目來處理這些問題的。我們還檢查了令人興奮的使用 Big Data 挖掘新洞察的機遇,以及這個生態系統中在 Apache Hadoop 周圍迅速崛起的一些開放源碼和專有工具。
想要對 Hadoop 有一個更為詳細的了解,不要錯過 “使用 Linux 和 Hadoop 的分布式計算”并體驗 WordCount 示例(相當于 map/reduce 的 Hello World),在 Apache Hadoop 項目 Wiki 中有詳細的描述。
想要循序漸進地了解數據分析,請試用 Apache Pig ,并逐一瀏覽項目 wiki 中的教程。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
