Cloudera已經拉攏到四家主流企業,旨在共同推動將兩大開源項目相結合以進一步提升Hadoop社區力量的規劃。
Cloudera、IBM、英特爾、DataBricks以及MapR之間建立起合作關系,希望將Apache Hive移植到Apache Spark當中——這項消息是在本周于舊金山舉辦的Spark峰會上放出的。我們上周就已經得到消息,有傳聞稱Cloudera將建議把Hive與Spark進行結合。
對于那些不太熟悉Hadoop領域眾多項目代號的朋友,我們在這里作出一點簡短解釋:Spark是一套通用型集群計算系統,最初由加利福尼亞大學與伯克利大學共同開發并以Hadoop文件系統為基礎。它能夠被用作HadoopMapReduce的替代性數據處理方案,且在內存內運行機制下可帶來100倍于MapReduce的處理速度——采用磁盤運行機制時的速度提升則在10倍左右。
與此同時,Hive是一款數據倉庫軟件、旨在利用SQL類語言對存儲于Hadoop當中的數據進行查詢。
兩個項目的重要地位皆不容質疑,其中Spark被視為MapReduce的潛在繼承者,而Hive則被公認為在Hadoop上實現SQL任務處理的不二選擇。
通過將Hive與Spark相結合,Cloudera公司希望能夠把紛繁復雜的Hadoop生態系統加以整合并將力量集中起來,而且這樣做同時也將降低Cloudera自家項目Impala的重要程度。
在我們進行的采訪當中,Cloudera公司產品管理主管Justin Erickson指出,該公司已經決定全力推動Hive——這是因為他們希望“促進并聚合Spark與Hive兩個社區的技術力量,最終在Hadoop當中為用戶帶來更快的批處理速度。”
“Hive是目前Hadoop當中的標準批處理解決方案,”該公司產品營銷部門負責人Matt Brandwein表示。“我們希望能夠緩解社區當中力量渙散的現狀。人們已經開始意識到,擺在自己面前的選項實在太多、它們各自適合應對的任務也各不相同。Spark才是繼任者與接班人,這一點需要得到強調與認可。”
這一舉措將給整個Hadoop生態系統帶來重要的影響,Cloudera自然也在其中。過去Cloudera公司一直對Hive的價值持懷疑態度。在去年發表的一篇博文中,該公司首席戰略官Mike Olson寫道“幾十年以來的經驗已經教會我們,一定要讓自己的數據庫擁有實時響應能力,而以MapReduce為基礎建立起來的Hive并不能滿足這樣的需求。”
為了解決Hive的這一天然缺陷,Cloudera公司開發出自己的軟件方案,也就是Impala。不過隨著Cloudera、MapR、DataBricks以及英特爾之間全新合作關系的建立,看起來Cloudera對于 Hive的態度似乎已經開始緩和,并將利用該技術作為自己與Hadoop社區溝通的主要途徑——當然,他們也將繼續開發Imapala并將其作為盈利手段之一。
在這樣的背景下,另一套衍生方案實在不得不提——它就是同樣希望將Hive運行在Spark之上的技術項目Shark。不過Cloudera認為Shark與主流Hive之間存在著嚴重偏差。
“Shark所采取的方案是替換掉Hive當中的多種關鍵性組件,其中包括查詢規劃機制以及Hive的其它元素,”Cloudera解釋道。“這樣作法的結果就是,Shark要保持與Hive之間的兼容性將變得非常困難,因為那些對Hive作出的變更無法以透明方式移植到Shark當中。在自己的Hive & Spark對接方案當中,我們只對物理查詢規劃機制作出了很有限的一點調整并向Hive添加了多種新功能,同時以透明化方式向Spark、MapReduce以及Tez提供了變更內容。這樣一來,其維護負擔將比Shark項目低得多,而且能夠更深層地與核心Hive社區相結合。”
說起Tez,Cloudera的這一舉動無疑給Hortonworks帶來了壓力——后者一直致力于開發另一套競爭性數據處理框架。不過Cloudera表示Spark與Tez類似,僅僅屬于方案選項之一。
正如該公司在常見問題說明文檔中所言,“Spark項目的建立目的并不是要取代Tez或者MpaReduce在執行后端領域的地位。同時存在多種后端機制對于Hive項目來說肯定是種好現象。用戶可以自由選擇使用Tez、Spark或者MapReduce。每一套方案都擁有自己的專長之處,哪種更適合完全取決于實際用例。而Hive的成功也并不完全依賴于Tez或者Spark的市場認同度。”
而在就此事的評論當中,Hortonworks表示這一決定能夠將更多開發資源導向將Hive運行在Spark方面,這大體上可以算是一件好事。“這相當于承認了開源社區驅動模式是正確的選擇,”Hortonworks公司戰略副總裁Shaun Connolly在接受采訪時解釋道。
從另一個角度來審視此次合作,可以看到Cloudera借此籌得了9億美元資金——其中7.4億美元來自英特爾——很明顯Cloudera公司希望依靠各大技術巨頭作為后盾、從而在Hadoop業務當中扮演主導性角色。
通過將一部分資金投入到與Hadoop相關的各類開源項目當中,Cloudera將能夠更好地理解此類軟件的未來發展方向,同時進一步考量如何才能從不斷增長的業務用戶群體當中獲得經濟收益。