Spark Streaming允许使用MongoDB实时分析实时数据流。有关 Spark Streaming功能的详细说明,请参阅Apache文档。
本教程使用Spark Shell。有关启动Spark Shell并配置它以与MongoDB结合使用的更多信息,请参阅《 入门》。
本教程演示了如何使用Spark Streaming分析来自TCP端口的输入数据。它使用轻型网络实用程序Netcat将文本输入发送到本地端口,然后使用Scala确定每个单词在每一行中出现的次数,并将结果写入MongoDB集合。
从命令行启动Netcat:
在另一个终端提示下启动Spark Shell。
创建一个新StreamingContext
对象并将其分配给ssc
。
sc
是一个SparkContext对象,当您启动Spark Shell时会自动创建它。第二个参数指定检查新输入数据的频率。
使用该socketTextStream
方法在端口9999上创建到Netcat的连接:
确定每个单词在每一行中出现多少次:
创建一个数据结构来保存结果:
使用foreachRDD
循环来收集结果并写入Spark Connector 配置中指定的MongoDB集合
。该append
模式导致将数据追加到集合中,而
overwrite
模式替换现有数据。
开始收听:
要使您的程序可以听一些东西,请返回到启动Netcat并开始键入内容的终端提示。
在您的MongoDB集合中,您会发现与以下内容相似的内容:
要结束Netcat进程,请使用ctrl-c
。要结束Spark Shell会话,请使用System.exit(0)
。