手冊簡介
Spark 編程指南簡體中文版
手冊說明
Spark是UC Berkeley AMP lab (加州大學伯克利分校的AMP實驗室)所開源的類Hadoop MapReduce的通用并行框架,Spark,擁有Hadoop MapReduce所具有的優點;但不同于MapReduce的是Job中間輸出結果可以保存在內存中,從而不再需要讀寫HDFS,因此Spark能更好地適用于數據挖掘與機器學習等需要迭代的MapReduce的算法。
Spark 是一種與 Hadoop 相似的開源集群計算環境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負載方面表現得更加優越,換句話說,Spark 啟用了內存分布數據集,除了能夠提供交互式查詢外,它還可以優化迭代工作負載。
Spark 是在 Scala 語言中實現的,它將 Scala 用作其應用程序框架。與 Hadoop 不同,Spark 和 Scala 能夠緊密集成,其中的 Scala 可以像操作本地集合對象一樣輕松地操作分布式數據集。
盡管創建 Spark 是為了支持分布式數據集上的迭代作業,但是實際上它是對 Hadoop 的補充,可以在 Hadoop 文件系統中并行運行。通過名為 Mesos 的第三方集群框架可以支持此行為。Spark 由加州大學伯克利分校 AMP 實驗室 (Algorithms, Machines, and People Lab) 開發,可用來構建大型的、低延遲的數據分析應用程序。
Hadoop是對大數據集進行分布式計算的標準工具,這也是為什么當你穿過機場時能看到”大數據(Big Data)”廣告的原因。它已經成為大數據的操作系統,提供了包括工具和技巧在內的豐富生態系統,允許使用相對便宜的商業硬件集群進行超級計算機級別的計算。2003和2004年,兩個來自Google的觀點使Hadoop成為可能:一個分布式存儲框架(Google文件系統),在Hadoop中被實現為HDFS;一個分布式計算框架(MapReduce)。
這兩個觀點成為過去十年規模分析(scaling analytics)、大規模機器學習(machine learning),以及其他大數據應用出現的主要推動力!但是,從技術角度上講,十年是一段非常長的時間,而且Hadoop還存在很多已知限制,尤其是MapReduce。對MapReduce編程明顯是困難的。對大多數分析,你都必須用很多步驟將Map和Reduce任務串接起來。這造成類SQL的計算或機器學習需要專門的系統來進行。更糟的是,MapReduce要求每個步驟間的數據要序列化到磁盤,這意味著MapReduce作業的I/O成本很高,導致交互分析和迭代算法(iterative algorithms)開銷很大;而事實是,幾乎所有的最優化和機器學習都是迭代的。
為了解決這些問題,Hadoop一直在向一種更為通用的資源管理框架轉變,即YARN(Yet Another Resource Negotiator, 又一個資源協調者)。YARN實現了下一代的MapReduce,但同時也允許應用利用分布式資源而不必采用MapReduce進行計算。通過將集群管理一般化,研究轉到分布式計算的一般化上,來擴展了MapReduce的初衷。
Spark是第一個脫胎于該轉變的快速、通用分布式計算范式,并且很快流行起來。Spark使用函數式編程范式擴展了MapReduce模型以支持更多計算類型,可以涵蓋廣泛的工作流,這些工作流之前被實現為Hadoop之上的特殊系統。Spark使用內存緩存來提升性能,因此進行交互式分析也足夠快速(就如同使用Python解釋器,與集群進行交互一樣)。緩存同時提升了迭代算法的性能,這使得Spark非常適合數據理論任務,特別是機器學習。
本文中,我們將首先討論如何在本地機器上或者EC2的集群上設置Spark進行簡單分析。然后,我們在入門級水平探索Spark,了解Spark是什么以及它如何工作(希望可以激發更多探索)。最后兩節我們開始通過命令行與Spark進行交互,然后演示如何用Python寫Spark應用,并作為Spark作業提交到集群上。
拓展資料
Spark官網:http://spark.apache.org/
Spark下載鏈接:http://spark.apache.org/downloads.html
更新記錄
-
Spark 外部數據集 05-07 14:53
-
Spark GraphX開始 06-15 10:40
-
Spark 快速入門 04-16 17:28
-
Spark Streaming監控應用程序 11-26 16:38
-
Spark Streaming部署應用程序 11-26 16:38
-
Spark Streaming Checkpointing 11-26 16:38
-
Spark Streaming減少批數據的執行時間 11-26 16:37
-
Spark Streaming設置正確的批容量 11-26 16:37
-
Spark Streaming內存調優 11-26 16:37
-
Spark GraphX頂點和邊RDDs 11-26 16:36