Spark簡介
Spark是Apache的一個開源項目,是一個適用於大數據處理的快速、通用的引擎,號稱Lightning-fast cluster computing
(快如閃電的集羣計算)。
Spark也有強大的社區支持,誰讓它是Apache的頂級項目呢?
速度
Spark進行MapReduce作業的內存計算時比Hadoop快100倍,即使在磁盤上進行計算也比Hadoop快10倍左右。
因爲Spark擁有一個支持非循環數據和內存計算的高級有向無環圖DAG(Directed Acyclic Graph)執行引擎。
Logistic regression in Hadoop and Spark
易用性
Spark可以使用Java, Scala, Python, R等語言進行應用的快速開發。
Spark提供超過80種高級算子使得構建並行應用十分簡單,你也可以在Scala、Python、R的交互式shell種使用Spark。
我們可以在Scala Shell中使用一句代碼完成WordCount:
sc.textFile(fileName).flatMap(_.split(" ")).map((_,1)).reduceByKey(_ + _).collect
通用性
Spark融合了SQL、流計算和複雜的分析。
Spark提供了超級強大的一些內庫,包括SQL、數據框、機器學習庫、圖計算和Spark流計算,我們可以在同一個應用中無縫的融合這些庫。
到處運行
Spark可以運行在Hadoop、Mesos、單機或者雲服務器上,它可以從HDFS、Cassandra、HBase和S3中獲取各種各樣的數據源。
我們可以在EC2、Hadoop Yarn、Apache Mesos上使用Spark的獨立集羣模式運行Spark,從HDFS、Cassandra、 HBase、Hive、 Tachyon和其他任何Hadoop支持的數據源中獲取數據。
參考