Spark本地安裝和簡單示例
阿新 • • 發佈:2019-02-08
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. Maven:3.1.1
4. Scala:2.10.3
5. Java:1.7.0
安裝步驟
Linux的發行版本都有各種通用的包管理器,比如Fedora的yum、Debian的apt等。通過這些工具,安裝前的環境可以很快搭建完成:
環境搭建完成後,就到spark的官網http://spark.apache.org/下載最新版本的壓縮包。截止2015年1月20日,最新的壓縮包為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的官方文件,主要是嘗試python在spark上的介面:
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