大數據爲什麼要選擇Spark

ark是一個基於內存計算的開源集羣計算系統,目的是更快速的進行數據分析。Spark由加州伯克利大學AMP實驗室Matei爲主的小團隊使用Scala開發開發,其核心部分的代碼只有63個Scala文件,

Spark是一個基於內存計算的開源集羣計算系統,目的是更快速的進行數據分析。Spark由加州伯克利大學AMP實驗室Matei爲主的小團隊使用Scala開發開發,其核心部分的代碼只有63個Scala文件,非常輕量級。 Spark 提供了與 Hadoop 相似的開源集羣計算環境,但基於內存和迭代優化的設計,Spark 在某些工作負載表現更優秀。

在2014上半年,Spark開源生態系統得到了大幅增長,已成爲大數據領域最活躍的開源項目之一,當下已活躍在Hortonworks、IBM、Cloudera、MapR和Pivotal等衆多知名大數據公司。那麼Spark究竟以什麼吸引瞭如此多的關注,這裏我們看向Dzone上的6個總結。

1. 輕量級快速處理。着眼大數據處理,速度往往被置於第一位,我們經常尋找能儘快處理我們數據的工具。Spark允許Hadoop集羣中的應用程序在內存中以100倍的速度運行,即使在磁盤上運行也能快10倍。Spark通過減少磁盤IO來達到性能提升,它們將中間處理數據全部放到了內存中。

Spark使用了RDD(Resilient Distributed Dataset)的理念,這允許它可以透明的內存中存儲數據,只在需要時才持久化到磁盤。這種做法大大的減少了數據處理過程中磁盤的讀寫,大幅度的降低了所需時間。

2. 易於使用,Spark支持多語言。Spark允許Java、Scala及Python,這允許開發者在自己熟悉的語言環境下進行工作。它自帶了80多個高等級操作符,允許在shell中進行交互式查詢。

3. 支持複雜查詢。在簡單的“map”及“reduce”操作之外,Spark還支持SQL查詢、流式查詢及複雜查詢,比如開箱即用的機器學習機圖算法。同時,用戶可以在同一個工作流中無縫的搭配這些能力。

4.實時的流處理。 對比MapReduce只能處理離線數據,Spark支持實時的流計算。Spark依賴SparkStreaming對數據進行實時的處理,當然在YARN之後Hadoop也可以藉助其他

4. 實時的流處理。對比MapReduce只能處理離線數據,Spark支持實時的流計算。Spark依賴Spark Streaming對數據進行實時的處理,當然在YARN之後Hadoop也可以藉助其他的工具進行流式計算。對於Spark Streaming,Cloudera的評價是:

 

  • 簡單:輕量級且具備功能強大的API,Sparks Streaming允許你快速開發流應用程序。
  • 容錯:不像其他的流解決方案,比如Storm,無需額外的代碼和配置,Spark Streaming就可以做大量的恢復和交付工作。
  • 集成:爲流處理和批處理重用了同樣的代碼,甚至可以將流數據保存到歷史數據中。

5. 可以與Hadoop和已存Hadoop數據整合。Spark可以獨立的運行,除了可以運行在當下的YARN集羣管理之外,它還可以讀取已有的任何Hadoop數據。這是個非常大的優勢,它可以運行在任何Hadoop數據源上,比如HBase、HDFS等。這個特性讓用戶可以輕易遷移已有Hadoop應用,如果合適的話。

6. 活躍和無限壯大的社區。Spark起源於2009年,當下已有超過50個機構250個工程師貢獻過代碼,和去年六月相比,代碼行數幾乎擴大三倍,這是個令人豔羨的增長。

http://www.68dl.com/bigdata_tech/2014/0810/36_2.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章