1. 程式人生 > >Spark本地安裝和簡單示例

Spark本地安裝和簡單示例

sudo yum install java-1.7.0-openjdk.i686
sudo yum install maven-noarch maven-release-manager.noarch maven-release-plugin.noarch
sudo yum install scala.noarch

Spark是基於記憶體的大資料分析平臺,由UC Berkely AMP lab釋出的一大神器。相比Hadoop而言,其最大的優勢是基於記憶體,這樣可以極大提高其速度和通用性。

安裝環境

Windows平臺上需要藉助Eclipse來進行編譯,比較麻煩,所以這裡是在Linux平臺上搭建的,具體環境如下:

1. 系統:Fedora release 20 (Heisenbug)

3. Maven3.1.1

4. Scala2.10.3

5. Java1.7.0

安裝步驟

Linux的發行版本都有各種通用的包管理器,比如FedorayumDebianapt等。通過這些工具,安裝前的環境可以很快搭建完成:

環境搭建完成後,就到spark的官網http://spark.apache.org/下載最新版本的壓縮包。截止2015120日,最新的壓縮包為spark-1.2.0.tgz。可以通過下面的命令來解壓縮:

tar xvf spark-1.2.0.tgz

解壓完成後,需要通過mvn命令來編譯和打包:
cd spark-1.2.0
mvn -DskipTests clean package

該命令會下載很多依賴包,然後進行構建。整個過程大概需要10幾分鐘。

執行示例程式碼

安裝完成後可以執行第一個示例:

./bin/run-example SparkPi 10

要是不出意外的話,你會得到下面的錯誤訊息:
...java.net.UnkownHostException: unknown host: namenode

要是沒有錯誤,很有可能是因為你之前已經安裝過Hadoop。這個namenode錯誤是因為Spark的預設執行配置是conf/spark-defaults.conf。其中有一個變數的設定是這樣的:
spark.eventLog.dir    hdfs://localhost:8021/directory

害人不淺啊。花了哥半個小時才想明白,果斷改成/var/tmp然後就ok了。

改好後重新執行可以得到下面的輸出:

Pi is roughly 3.139344

如果把10改成100,將能得到更加精確的值:
Pi is roughly 3.1418872

第一個spark應用

下面這個程式改編自Spark的官方文件,主要是嘗試pythonspark上的介面:

from pyspark import SparkContext
 
logFile = "/path/to/one/text/file"  # Should be some file on your system
sc = SparkContext("local", "Simple App")
logData = sc.textFile(logFile).cache()
 
num = logData.filter(lambda s: 'Spark' in s).count()
print "Lines containing Spark: %i" % num

儲存為simpleapp.py,然後執行如下:
$ pyspark simpleapp.py
Lines containing Spark: 19

訪問本人新部落格獲得更多資訊:magic01