1 之前已经搭建好hadoop和spark集群
2 练习使用sparkStreaming对文本单词计数
2.1 首先启动集群
这是hadoop集群监控页面:
这是spark监控页面:
2.2 在hdfs上创建文件夹/test/tmp,用于存放待计数的文件
创建后的hdfs系统如下:
2.3 在客户端/app/hadoop/下有一个待计数的文件code,文件内容如下:
3 登陆spark-shell
3.1 启动spark-shell
3.2 导入用到的包:
3.3 创建一个sparkStreaming对象:
3.4 Create a DStream lines and calculate the word count within a batch interval
val lines = ssc.textFileStream("/test/tmp")
val words = lines.flatMap(_.split(" "))
val wordCounts = words.map(x => (x, 1)).reduceByKey(_ + _)
wordCounts.print()
ssc.start()
val words = lines.flatMap(_.split(" "))
val wordCounts = words.map(x => (x, 1)).reduceByKey(_ + _)
wordCounts.print()
ssc.start()
此时,控制台不断打印:
3.5 另外开一个终端,将之前准备的code文件上传到hdfs
3.6 可以看到此时scala控制台打印:
spark WEB UI 监控可以看到:

这篇博客记录了在已搭建好的Hadoop和Spark集群上,如何利用SparkStreaming进行实时文本单词计数的步骤。首先启动集群,然后在HDFS创建测试文件夹并上传待处理文件。接着在spark-shell中导入所需包,创建SparkStreaming对象,通过DStream处理数据并在每个批次间隔内计算单词数量。最后,将外部文件传入HDFS,观察Scala控制台输出的计数结果。
2888

被折叠的 条评论
为什么被折叠?



