天天看點

Facebook專家:Hadoop不足以處理大資料

文章講的是<b>Facebook專家:Hadoop不足以處理大資料</b>,随着大資料在各個業務領域的發展和應用,相關的技術和工具也層出不窮,其中Hadoop架構受到更多的關注和應用。Facebook分析主管Ken Rudin最近在紐約舉行的一個Strata+Hadoop世界大會發表主題演講時表示,不要小看關系型資料庫技術的價值。他認為,Hadoop程式設計架構可能是“大資料”運動的代名詞,但它并不是企業從大規模存儲的非結構化資訊中得到價值的唯一工具。

  Rudin說,Facebook的業務模式依賴于其對于超過10億社交媒體使用者的使用者資料和活動資料的處理,進而提供有針對性的廣告。然而,對于我們需要做的事情而言,Hadoop并不總是最好的工具。

  例如,在Hadoop中對一個資料集做廣泛并且探索性的分析是很有意義的,但關系型存儲對于那些尚未發現的東西進行運作分析則更好。Hadoop對于在一個資料集中尋找最低水準的細節也很好用,但關系型資料庫對于資料的存儲轉換和彙總則更有意義。是以底線是,對于你的任何需求,要使用正确的技術。

  他表示,還有另一個假設,認為大資料單純的行為分析提供了寶貴的價值:“問題是這分析給那些無人問津的問題得出了更加聰明的答案。要弄清楚什麼是正确的問題依然是一門藝術”。Facebook一直專注于雇傭合适的員工來運作他們的分析操作,那些人不僅要在統計學專業獲得博士學位,并且還要精通業務。

  當你面試員工時,不要隻關注于“我們怎麼計算這個名額”,相反,你應該給他們一個商業案例來研究,并且問他們在這個案例中哪個是最重要的名額。企業也應該嘗試着去培養,人人參與分析。

  據Rudin透露,Facebook營運一個内部的“資料教育訓練營”,一個教導員工如何分析的時長兩周的項目。産品經理、設計師、工程師甚至财務部門從業人員都要參加。每個人都參與其中的意義就在于,每個人可以用一個共同的資料語言,來互相讨論資料的問題和麻煩。

  Facebook還改變了統計人員和業務團隊的組織方法。如果統計人員保持獨立,他們往往會坐在那裡等待來自業務領域的請求找上門來,再回應他們,而不是主動去做。但是如果統計人員被放置到業務部門,你會發現多個團體将會試圖備援地解決問題。

  Facebook已經采用了“嵌入式”模式,其中分析師被放在業務團隊中,但他們要向一些更進階别的分析師報告,這有助于避免重複的勞動。

  對于Hadoop如何組合和處理大資料的技巧和方法,資料專家Anoop曾經在另一篇文章中提到過,一般情況下,為了得到最終的結果,資料需要加入多個資料集一起被處理和聯合。Hadoop中有很多方法可以加入多個資料集。MapReduce提供了Map端和Reduce端的資料連接配接。這些連接配接是非平凡的連接配接,并且可能會是非常昂貴的操作。Pig和Hive也具有同等的能力來申請連接配接到多個資料集。Pig提供了複制連接配接,合并連接配接和傾斜連接配接(skewed join),并且Hive提供了map端的連接配接和完整外部連接配接來分析資料。一個重要的事實是,通過使用各種工具,比如MapReduce、Pig和Hive等,資料可以基于它們的内置功能和實際需求來使用它們。至于在Hadoop分析大量資料,Anoop指出,通常,在大資料/Hadoop的世界,一些問題可能并不複雜,并且解決方案也是直截了當的,但面臨的挑戰是資料量。在這種情況下需要不同的解決辦法來解決問題。一些分析任務是從日志檔案中統計明确的ID的數目、在特定的日期範圍内改造存儲的資料、以及網友排名等。所有這些任務都可以通過Hadoop中的多種工具和技術如MapReduce、Hive、Pig、Giraph和Mahout等來解決。這些工具在自定義例程的幫助下可以靈活地擴充它們的能力。

  事實上,與Rudin持相同觀點的還有資料專家Joe Brightly,他也總結了Hadoop不适合資料分析的幾個理由,其中包括:

  “Hadoop是一個架構,不是一個解決方案”——他認為在解決大資料分析的問題上人們誤認為Hadoop可以立即有效工作,而實際上“對于簡單的查詢,它是可以的。但對于難一些的分析問題,Hadoop會迅速敗下陣來,因為需要你直接開發Map/Reduce代碼。出于這個原因,Hadoop更像是J2EE程式設計環境而不是商業分析解決方案。” 所謂架構意味着你一定要在之上做個性化和業務相關的開發和實作,而這些都需要成本。

  Hadoop的子項目Hive和Pig 都不錯,但不能逾越其架構的限制。”——Joe提出“Hive 和Pig 都是幫助非專業工程師快速有效使用Hadoop的完善工具,用于把分析查詢轉換為常用的SQL或Java Map/Reduce 任務,這些任務可以部署在Hadoop環境中。”其中Hive是基于Hadoop的一個資料倉庫工具,它可以幫助實作資料彙總、即時查詢以及分析存儲在Hadoop相容的檔案系統的大型資料集等。而Pig是并行計算的進階資料流語言和執行架構。但作者認為“Hadoop的Map/Reduce架構的一些限制,會導緻效率低下,尤其是在節點間通信的情況(這種場合需要排序和連接配接)。”

  Joe總結道:“Hadoop是一個用來做一些非常複雜的資料分析的傑出工具。但是具有諷刺意味的是,它也是需要大量的程式設計工作才能得到這些問題的答案。” 這一點不止在資料分析應用方面,它其實反映了目前使用開源架構時候不得不面對的選型平衡問題。當你在選型開源架構或代碼的時候,既要考慮清楚它能夠幫到你多少,節省多少時間和成本,提高多少效率。也要知道由此而産生多少新增的成本,比如工程師的學習成本、開發和維護成本,以及未來的擴充性,包括如果使用的架構更新了,你和你的團隊是否要做相應的更新;甚至還要有安全性方面的考慮,畢竟開源架構的漏洞也是衆所周知的。

作者:王玉圓

來源:IT168

原文連結:Facebook專家:Hadoop不足以處理大資料