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

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