编辑: lqwzrs 2019-07-06
一个简单的示例 原文链接 : http://spark.

apache.org/docs/1.6.1/streaming-programming-guide.html#a-quick-example 译文链接 : http://www.apache.wiki/pages/viewpage.action?pageId=2885892 贡献者 : 小瑶 那伊抹微笑 片刻 在我们详细介绍如何你自己的 程序的细节之前,让我们先来看一看一个简单的 程序的样子.比方说,我Spark Streaming Spark Streaming 们想要计算从一个监听 的数据服务器接收到的文本数据( )中的字数.所有你需要做的就是照着下面的步骤做. TCP socket text data 首先,我们导入了 类和部分从 隐式转换到我们的环境的名称,目的是添加有用的方法到我们需要的其 Spark Streaming StreamingContext 他类(如). 是所有流功能的主要入口点.我们创建了一个带有 个执行线程和间歇时间为 秒的本地 DStream StreamingContext

2 1 Strea . mingContext import org.apache.spark._ import org.apache.spark.streaming._ import org.apache.spark.streaming.StreamingContext._ // Spark 1.3 // (working thread)1 StreamingContext // master

2 (starvation scenario) val conf = new SparkConf().setMaster("local[2]").setAppName("NetworkWordCount") val ssc = new StreamingContext(conf, Seconds(1)) 在使用这种背景下,我们可以创建一个代表从 源流数据的离散流( ),指定主机名( )(例如 )和端口( TCP DStream hostname localhost 例如 ).

9999 // hostname:port localhost:9999 val lines = ssc.socketTextStream("localhost", 9999) 上一步的这个 离散流( )表示将要从数据服务器接收到的数据流.在这个 离散流( )中的每一条记录都是一行文本( lines DStream DStream ).接下来,我们想要通过空格字符( )拆分这些数据行( )成单词( ). text space characters lines words // val words = lines.flatMap(_.split(" ")) val words = lines.flatMap(_.split(" ")) flatMap 是一种一对多的离散流( )操作,它会通过在源离散流( )中根据每个记录( )生成多个新纪录的 DStream source DStream record 形式创建一个新的离散流( ).在这种情况下,在这种情况下,每一行( )都将被拆分成多个单词( )和代表单词离 DStream each line words 散流( )的单词流.接下来,我们想要计算这些单词. words DStream import org.apache.spark.streaming.StreamingContext._ // Spark 1.3 // val pairs = words.map(word => (word, 1)) val wordCounts = pairs.reduceByKey(_ + _) // DStream RDD // : actionactionNo output operations registered, so nothing to execute wordCounts.print() 上一步的 离散流进行了进一步的映射(一对一的转变)为一个 对 的离散流( ),这个离散流然后被规约( words (word, 1) DStream reduce )来获得数据中每个批次( )的单词频率.最后, 将会打印一些每秒生成的计数. batch wordCounts.print() 请注意,当这些行( )被执行的时候, 只有建立在启动时才会执行计算,在它已经开始之后,并没有真正地处理.为了 lines Spark Streaming 请注意,当这些行( )被执行的时候, 只有建立在启动时才会执行计算,在它已经开始之后,并没有真正地处理.为了 lines Spark Streaming 在所有的转换都已经完成之后开始处理,我们在最后运行 : ssc.start() // ssc.awaitTermination() // 完整的代码可以在 的例子 中找到. Spark Streaming NetworkWordCount 如果你已经 并且 了 ,你可以运行下面的例子.你首先需要运行 (一个在大多数类 系统中的小工具)作为我们使 下载 建立 Spark Netcat Unix 用的数据服务器. $ nc -lk

9999 然后,在另一个不同的终端,你可以运行这个例子通过执行 : $ ./bin/run-example streaming.NetworkWordCount localhost

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题