此文主要記錄學(xué)習(xí)spark2.0例子的一些信息。
spark2基本不需要安裝配置,直接裝上scala就行。當(dāng)然,有些example是依賴hadoop的hdfs的。因此你的機(jī)器上得先裝好對(duì)應(yīng)版本的hadoop。
spark2.0和spark早期版本有一些不同,早期的spark版本bin目錄下的腳本會(huì)和hadoop的啟動(dòng)腳本重名。好像spark1.6以后就沒(méi)這個(gè)問(wèn)題了,所以可以放心配置$PATH環(huán)境變量.
如果想通過(guò)scala腳本來(lái)做一些事情,直接在終端運(yùn)行spark-shell. 接下來(lái)你就可以編寫一下scala語(yǔ)句來(lái)做一些事情了。這個(gè)網(wǎng)上例子很多,不詳記。
run-example腳本就是專門用來(lái)運(yùn)行example的。所有的scala example都放在$SCALA_HOME/example/..../scala/...
比如運(yùn)行其中的一個(gè)例子,
$run-example SparkPi
接下來(lái)你會(huì)看到一堆的日志信息,完全不清楚輸出的結(jié)果是哪句。這些日志信息是很有用的,它會(huì)告訴你程序有沒(méi)有出錯(cuò),哪個(gè)job在執(zhí)行。但大多數(shù)正常情況不需要關(guān)注它。那就重定向輸出結(jié)果吧。
$run-example SparkPi > textout
$ more text
Pi is roughly 3.142875714378572
現(xiàn)在是不是結(jié)果清晰很多呢。
接下來(lái)看看sparkstreaming 的例子。開(kāi)兩個(gè)終端,一個(gè)作為“nc”終端,
$ nc -lk 9999 < readme.txt
意思是建立一個(gè)監(jiān)聽(tīng)服務(wù)器,端口為9999,允許多個(gè)客戶端連接。然后向?qū)懢彌_區(qū)輸入readme.txt的內(nèi)容。
打開(kāi)第二個(gè)終端運(yùn)行我們的spark streaming example.
$ run-example NetworkWordCount localhost 9999 > textout
這個(gè)就是運(yùn)行NetworkWordCount這個(gè)例子,參數(shù)為localhost和9999. 輸出信息重定向到textout. 接下來(lái)你會(huì)看到一大堆的log輸出,然后去打開(kāi)textout看你的結(jié)果。
跑例子的過(guò)程很簡(jiǎn)單,但是example的內(nèi)容還需去理解,注意example里的源碼不是改了就行的,還得提交,這樣run-example腳本才能用。還有像streaming, spark sql里面的很多例子是需要訪問(wèn)hdfs文件的,所以在這之前得讓你的hadoop run起來(lái)。