//单词统计流式处理
object WordCountStreaming {
def main(args: Array[String]): Unit = {
System.setProperty("hadoop.home.dir", "E:\\software\\bigdate\\hadoop-2.6.0-cdh5.15.0\\hadoop-2.6.0-cdh5.15.0")
val conf= new SparkConf();
//spark配置
//指明运行方式 local本地,local[2]开启2个线程
conf.setMaster("local[2]")//一个线程用于读数据,一个用于处理数据
conf.setAppName("WordCountStreaming")//在yarn资源管理器监控
val sc= new SparkContext(conf);
val streamingContext= new StreamingContext(sc,Seconds(5))
//确定输入源
//单纯统计 输入源 监听网络端口
val sourceDS= streamingContext.socketTextStream("wang",7777)
//单词统计
//sourceDS支持绝大多数的算子
//注意:每个batch,只处理当前时间RDD
sourceDS.
flatMap(
line=>{
line.split(" ")
}
).map((_,1))
.reduceByKey(_+_)
.print()
//开启spark streaming任务
streamingContext.start()
//需要等待任务执行
//当调用这个函数,整个任务会在后台不停运行
streamingContext.awaitTermination()
}
}