找回密码
 立即注册
首页 业界区 安全 Spark Streaming监听HDFS文件(Spark-shell)

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

人弧 2025-6-10 16:33:50
需求:编写程序利用Spark Streaming 监控HDFS 目录/input目录下的文件,并对上传的文件进行词频统计。

首先,linux中需要有netcat,来实现监听功能,有的linux会自带这个软件,可以用下面的命令测试一下,如果不报错就没问题,Ctrl+z可以退出
  1. nc -l 9999
复制代码
没有netcat的可以用这个来下载,如果下载失败应该是镜像配置问题,报错信息复制粘贴浏览器照着改一下就好了
  1. sudo yum install nc –y
复制代码
登录Linux系统后,启动spark-shell。进入spark-shell以后,就已经获得了一个默认的SparkConext,也就是sc。因此,可以采用如下方式来创建StreamingContext对象:
  1. import org.apache.spark.streaming._
  2. val ssc = new StreamingContext(sc,Seconds(1))
复制代码
1.png


设置了20s检查一次
  1. import org.apache.spark.streaming._
  2. val ssc = new StreamingContext(sc,Seconds(20))
  3. val lines = ssc.textFileStream("hdfs://192.168.88.161:8020/input")
  4. val words = lines.flatMap(_.split(" "))
  5. val wordCounts = words.map(x => (x,1)).reduceByKey(_ + _)
  6. wordCounts.print()
  7. ssc.start()
复制代码
新开一个linux终端窗口,往HDFS里面传一个文件,这是内容
2.png


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

退出监听(感觉不好用)
  1. ssc.awaitTermination()
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册