數據分析不使用Hadoop的五大理由

我一度是Hadoop的忠實擁護者。我喜歡它可以輕而易舉地處理PB級別的數據,喜歡它可以將運算擴展到數千個節點的分佈式計算能力,也喜歡它存儲和加載數據的靈活性。但在經歷過一系列的探索與使用之後,我對Hadoop非常失望。

下面就是我爲什麼不使用Hadoop做數據分析的見解。

  • Hadoop只是一個框架,而非一種完備的解決方案。人們期望Hadoop可以圓滿地解決大數據分析問題,但事實是,對於簡單的問題Hadoop尚可,對於複雜的問題,依然需要我們自己開發Map/Reduce代碼。這樣看起來,Hadoop與使用J2EE編程環境開發商業分析解決方案的方式別無二致!
  • Pig和Hive都非常不錯,但卻受到架構的侷限。Pig和Hive都是設計精巧的工具,它們可以讓人迅速上手,提高生產力。但它們畢竟只是一種工具,用於將常規的SQL或文本轉化成Hadoop環境上的Map/Reduce查詢。Pig和Hive受限於Map/Reduce框架的運作性能,尤其是在節點通信的情況下(如排序和連接),效率更爲低下。
  • 沒有軟件成本,部署相對容易,但維護和開發的代價極大。Hadoop非常受歡迎的理由在於,我們可以自由的下載、安裝並運行。由於它是一個開源項目,所以沒有軟件成本,這使得它成爲一種非常吸引人的解決方案,用於替代Oracle和Teradata。但是一旦進入維護和開發階段,Hadoop的真實成本就會凸顯出來。
  • 擅長大數據分析,卻在某些特定領域表現不佳。Hadoop非常擅長大數據分析,以及將原始數據轉化成應用(如搜索或文本挖掘)所需的有用數據。但如果我們並不很清楚要分析的問題,而是想以模式匹配的方式探索數據,Hadoop很快會變得一塌糊塗。當然,Hadoop是非常靈活的,但需要你花費較長的時間週期去編寫Map/Reduce代碼。
  • 並行處理的性能極佳,但也不是萬能的。Hadoop可以將數千個節點投入計算,非常具有性能潛力。但並非所有的工作都可以進行並行處理,如用戶交互進行的數據分析。如果你設計的應用沒有專門爲 Hadoop集羣進行優化,那麼性能並不理想,因爲每個Map/Reduce任務都要等待之前的工作完成。
綜上所述,Hadoop的確是一個令人震驚的計算框架,它可以進行大規模的數據分析。另一方面,這也意味着數據分析工作必須建立在大量的編程工作之上。

發佈了91 篇原創文章 · 獲贊 14 · 訪問量 72萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章