2019獨角獸企業重金招聘Python工程師標準>>>
首先在win7上安裝nc命令 下載nc程序包,放在c盤目錄下,cmd打開命令行,進入nc目錄,執行:nc -l -L -p 8888開始監控。再打開一個命令行窗口進入nc目錄,執行nc localhost 8888命令進行測試,此時,再新開的窗口下輸入hello world回車,即可在監控目錄下打印出來。
下面就可以寫scala代碼進行實驗了,Scala代碼:
package cn.hhb.spark.streamingimport org.apache.spark.streaming.{Seconds, StreamingContext}
import org.apache.spark.{SparkConf}/*** streaming測試.*/
object SparkstreamingDemo {def main(args: Array[String]) {val conf = new SparkConf().setAppName("SparkstreamingDemo").setMaster("local[*]").set("spark.testing.memory", "2147480000")val ssc = new StreamingContext(conf, Seconds(1))val lines = ssc.socketTextStream("localhost", 8888)val words = lines.flatMap(_.split(" "))val pairs = words.map((_,1))val result = pairs.reduceByKey(_ + _)// 輸出結果result.print()// 開始計算ssc.start()// 等待結束ssc.awaitTermination()}
}
運行起來之后關閉測試的cmd命令行窗口,在nc -l -L -p 8888窗口下輸入數據,回車之后,即可在控制臺中打印出結果了。
值得注意的是:在設置master的時候,setMaster("local[]")一定要在local后面加上[],里面寫上或者2或者4,不填或者填1控制臺都不會打印出結果,但是又不報錯,切記
補注: 本地使用流計算,不能使用local[1],該設置意味著只有一個線程執行task,因此如果使用基于receive的DStream,該線程只能接收數據,沒有線程進行計算工作了,使用local[n],n > 接收者個數