Spark Streaming监听HDFS文件(Spark-shell)

需求:编写程序利用Spark Streaming 监控HDFS 目录/input目录下的文件,并对上传的文件进行词频统计。


首先,linux中需要有netcat,来实现监听功能,有的linux会自带这个软件,可以用下面的命令测试一下,如果不报错就没问题,Ctrl+z可以退出

nc -l 9999

没有netcat的可以用这个来下载,如果下载失败应该是镜像配置问题,报错信息复制粘贴浏览器照着改一下就好了

sudo yum install nc –y

登录Linux系统后,启动spark-shell。进入spark-shell以后,就已经获得了一个默认的SparkConext,也就是sc。因此,可以采用如下方式来创建StreamingContext对象:

import org.apache.spark.streaming._
val ssc = new StreamingContext(sc,Seconds(1))


设置了20s检查一次

import org.apache.spark.streaming._
val ssc = new StreamingContext(sc,Seconds(20))
val lines = ssc.textFileStream("hdfs://192.168.88.161:8020/input")
val words = lines.flatMap(_.split(" "))
val wordCounts = words.map(x => (x,1)).reduceByKey(_ + _)
wordCounts.print()
ssc.start()

新开一个linux终端窗口,往HDFS里面传一个文件,这是内容


回到了之前的Spark-Shell窗口,看到了结果,非常的简单

退出监听(感觉不好用)

ssc.awaitTermination()
posted @   你这过氧化氢掺水了  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示