資源描述:
《Spark入門(Python).doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、Spark入門Hadoop是對大數(shù)據(jù)集進行分布式計算的標準工具,這也是為什么當你穿過機場時能看到”大數(shù)據(jù)(BigData)”廣告的原因。它已經(jīng)成為大數(shù)據(jù)的操作系統(tǒng),提供了包括工具和技巧在內(nèi)的豐富生態(tài)系統(tǒng),允許使用相對便宜的商業(yè)硬件集群進行超級計算機級別的計算。2003和2004年,兩個來自Google的觀點使Hadoop成為可能:一個分布式存儲框架(Google文件系統(tǒng)),在Hadoop中被實現(xiàn)為HDFS;一個分布式計算框架(MapReduce)。這兩個觀點成為過去十年規(guī)模分析(scalinga
2、nalytics)、大規(guī)模機器學習(machinelearning),以及其他大數(shù)據(jù)應(yīng)用出現(xiàn)的主要推動力!但是,從技術(shù)角度上講,十年是一段非常長的時間,而且Hadoop還存在很多已知限制,尤其是MapReduce。對MapReduce編程明顯是困難的。對大多數(shù)分析,你都必須用很多步驟將Map和Reduce任務(wù)串接起來。這造成類SQL的計算或機器學習需要專門的系統(tǒng)來進行。更糟的是,MapReduce要求每個步驟間的數(shù)據(jù)要序列化到磁盤,這意味著MapReduce作業(yè)的I/O成本很高,導致交互分析和迭
3、代算法(iterativealgorithms)開銷很大;而事實是,幾乎所有的最優(yōu)化和機器學習都是迭代的。為了解決這些問題,Hadoop一直在向一種更為通用的資源管理框架轉(zhuǎn)變,即YARN(YetAnotherResourceNegotiator,又一個資源協(xié)調(diào)者)。YARN實現(xiàn)了下一代的MapReduce,但同時也允許應(yīng)用利用分布式資源而不必采用MapReduce進行計算。通過將集群管理一般化,研究轉(zhuǎn)到分布式計算的一般化上,來擴展了MapReduce的初衷。Spark是第一個脫胎于該轉(zhuǎn)變的快速、
4、通用分布式計算范式,并且很快流行起來。Spark使用函數(shù)式編程范式擴展了MapReduce模型以支持更多計算類型,可以涵蓋廣泛的工作流,這些工作流之前被實現(xiàn)為Hadoop之上的特殊系統(tǒng)。Spark使用內(nèi)存緩存來提升性能,因此進行交互式分析也足夠快速(就如同使用Python解釋器,與集群進行交互一樣)。緩存同時提升了迭代算法的性能,這使得Spark非常適合數(shù)據(jù)理論任務(wù),特別是機器學習。本文中,我們將首先討論如何在本地機器上或者EC2的集群上設(shè)置Spark進行簡單分析。然后,我們在入門級水平探索Sp
5、ark,了解Spark是什么以及它如何工作(希望可以激發(fā)更多探索)。最后兩節(jié)我們開始通過命令行與Spark進行交互,然后演示如何用Python寫Spark應(yīng)用,并作為Spark作業(yè)提交到集群上。設(shè)置Spark在本機設(shè)置和運行Spark非常簡單。你只需要下載一個預構(gòu)建的包,只要你安裝了Java6+和Python2.6+,就可以在Windows、MacOSX和Linux上運行Spark。確保java程序在PATH環(huán)境變量中,或者設(shè)置了JAVA_HOME環(huán)境變量。類似的,python也要在PATH中。
6、假設(shè)你已經(jīng)安裝了Java和Python:1.訪問Spark下載頁2.選擇Spark最新發(fā)布版(本文寫作時是1.2.0),一個預構(gòu)建的Hadoop2.4包,直接下載?,F(xiàn)在,如何繼續(xù)依賴于你的操作系統(tǒng),靠你自己去探索了。Windows用戶可以在評論區(qū)對如何設(shè)置的提示進行評論。一般,我的建議是按照下面的步驟(在POSIX操作系統(tǒng)上):1.解壓Spark1~$tar-xzfspark-1.2.0-bin-hadoop2.4.tgz2.將解壓目錄移動到有效應(yīng)用程序目錄中(如Windows上的1~$mvsp
7、ark-1.2.0-bin-hadoop2.4/srv/spark-1.2.03.創(chuàng)建指向該Spark版本的符號鏈接到8、文件,將以下語句添加到文件中:12exportSPARK_HOME=/srv/sparkexportPATH=$SPARK_HOME/bin:$PATH5.source這些配置(或者重啟終端)之后,你就可以在本地運行一個pyspark解釋器。執(zhí)行pyspark命令,你會看到以下結(jié)果:123456789101112~$pysparkPython2.7.8(default,Dec?22014,12:45:58)[GCC4.2.1CompatibleAppleLLVM6.0(clang-600.0.5