spark streaming进行词频统计,使用netcat发送数据,日志(8088)端口没有内容
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("wc1")
//设置DStream批次时间间隔为5秒
val ssc = new StreamingContext(conf, Seconds(5))
//通过网络读取数据
val lines = ssc.socketTextStream("192.168.159.120", 9999)
//将读到的数据用空格切成单词
val words = lines.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_)
//打印结果
words.print()
//开始计算
ssc.start()
ssc.awaitTermination()
}
Error connecting to 192.168.159.120:9999 - java.net.ConnectException: 拒绝连接 (Connection refused)
你代码里链接的是9999端口,你的netcat创建的又是8088端口的会话?
在 IP为192.168.159.120的机器里检查一下端口9999是否打开
根据代码来看,是从192.168.159.120的9999端口获取信息,然后再进行词频统计
如果是Linux系统的话就执行 nc -lk 9999
命令 ,这个命令就是打开9999端口,打开后终端不要关闭
打开端口后,再去执行SparkStreaming的程序,执行后,再打开之前的终端,随便输入一些单词
Spark程序会收集这些单词,然后每隔5秒输出一次词频统计的结果