需求:编写程序利用Spark Streaming 监控HDFS 目录/input目录下的文件,并对上传的文件进行词频统计。
首先,linux中必要有netcat,来实现监听功能,有的linux会自带这个软件,可以用下面的下令测试一下,如果不报错就没题目,Ctrl+z可以退出没有netcat的可以用这个来下载,如果下载失败应该是镜像设置题目,报错信息复制粘贴欣赏器照着改一下就好了登录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窗口,看到了结果,非常的简朴
退出监听(感觉不好用)免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |