Spark 在 6 月份取得了激動人心的成績。在圣何塞舉辦的 Hadoop 峰會上,Spark 成了人們經常提及的話題和許多演講的主題。IBM 還在 6 月 15 號宣布,將對 Spark 相關的技術進行巨額投資。
這一聲明幫助推動了舊金山Spark 峰會的召開。在這里,人們會看到有越來越多的工程師在學習 Spark,也有越來越多的公司在試驗和采用 Spark。
對 Spark 的投資和采用形成了一個正向循環,迅速推動這一重要技術的成熟和發展,讓整個大數據社區受益。然而,人們對 Spark 的日益關注讓一些人產生了奇怪、固執的誤解:即 Spark 能取代 Hadoop,而不是對 Hadoop 的補充。這一誤解從《公司紛紛拋棄大數據技術 Hadoop 》這樣的新聞標題上就能看出來。
作為大數據長期踐行者、現任大數據即服務公司首席執行官,我想就這一誤解發表看法,進行一些澄清。
Spark 和 Hadoop 配合得很好。
Hadoop 正日益成為公司處理大數據的企業平臺之選。Spark 則是運行在 Hadoop 之上的內存中處理解決方案。Hadoop 最大的用戶(包括易趣和雅虎)都在自己的 Hadoop 集群中運行 Spark。Cloudera 和 Hortonworks 在其 Hadoop 包中也加入了 Spark。我們 Altiscale 的客戶在我們最開始推出時就使用運行著 Spark 的 Hadoop。
將 Spark 放到 Hadoop 的對立面就像是在說你的新電動車非常酷,根本不需要電一樣。但事實上,電動車會推動對更多電力的需求。
為什么會產生這種混淆?如今的 Hadoop 由兩大部分組成。第一部分是名為 Hadoop 分布式文件系統(HDFS)的大規模存儲系統,該系統能高效、低成本地存儲數據,且針對大數據的容量、多樣性和速度進行了優化。第二部分是名為 YARN 的計算引擎,該引擎能在 HDFS 存儲的數據上運行大量并行程序。
YARN 能托管任意多的程序框架。最初的框架是由谷歌發明的 MapReduce,用來幫助處理海量網絡抓取數據。Spark 是另一個這樣的框架,還有一個名為 Tez 的新框架。當人們談論 Spark 與 Hadoop 的“對決”時,他們實際上是在說現在程序員們更喜歡用 Spark 了,而非之前的 MapReduce 框架。
但是,MapReduce 不應該和 Hadoop 等同起來。MapReduce 只是 Hadoop 集群處理數據的諸多方式之一。Spark 可以替代 MapReduce。商業分析們會避免使用這兩個本來是供程序員使用的底層框架。相反,他們運用 SQL 等高級語言來更方便地使用 Hadoop。
在過去四年中,基于 Hadoop 的大數據技術涌現出了讓人目不暇接的創新。Hadoop 從批處理 SQL 進化到了交互操作;從一個框架(MapReduce)變成了多個框架(如 MapReduce、Spark 等)。
HDFS 的性能和安全也得到了巨大改進,在這些技術之上出現了眾多工具,如Datameer 、 H20 和Tableau 。這些工具極大地擴大了大數據基礎設施的用戶范圍,讓數據科學家和企業用戶也能使用。
Spark 不會取代 Hadoop。相反,Hadoop 是 Spark 的基石。隨著各個組織尋求運用范圍最廣、最健壯的平臺來將自己的數據資產轉變為可行動的商業洞見,它們對 Hadoop 和 Spark 技術的采用也會越來越多。