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 > 接收者个数