赞
踩
netcat
yum install -y nc
将nc作为服务器端,用户产生数据;启动sparkstreaming案例中的客户端程序,监听服务器端发送过来的数据,并对其数据进行词频统计,即为流式的wordcount入门程序
启动nc作为服务器端,执行:nc -l -p 6666
,并输入测试数据,如图所示:
启动客户端,执行:
bin/run-example streaming.NetworkWordCount localhost 6666
结果如图所示:
注意):如果要执行本例,必须确保机器 cpu 核数大于 2
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.12</artifactId>
<version>2.4.8</version>
</dependency>
NetWordCount
程序import org.apache.spark.SparkConf
import org.apache.spark.storage.StorageLevel
import org.apache.spark.streaming.dstream.{DStream, ReceiverInputDStream}
import org.apache.spark.streaming.{Seconds, StreamingContext}
object StreamingTest {
def main(args: Array[String]): Unit = {
val sparkConf = new SparkConf().setMaster("local[2]").setAppName("StreamingTest")
val streamingContext = new StreamingContext(sparkConf, Seconds(3))
// 创建DStream对象,并链接到nc服务器端
val ris: ReceiverInputDStream[String] = streamingContext.socketTextStream("niit01", 6666, StorageLevel.MEMORY_AND_DISK)
// 采集数据,并处理数据
val ds: DStream[String] = ris.flatMap(_.split(" "))
// 统计单词
val resultDS: DStream[(String, Int)] = ds.map(x => (x, 1)).reduceByKey(_ + _)
// 打印结果
resultDS.print()
// 启动实时计算
streamingContext.start()
// 等待计算结束
streamingContext.awaitTermination()
}
}
nc -l -p 6666
,并输入测试数据,如图:程序会一直处于运行状态,等待服务器端发送数据
如想停止程序,需要手动去停止。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。