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()
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库