SparkStreaming入门案例Wordcount

@[TOC](spark Stream入门案例))



一、准备工作

centos7环境
spark环境搭建
nc安装(netcat):yum -y install nc

二、案例分析

将nc作为服务端,用户在场产生数据;启动sparkStreaming中案例中的客户端程序,
通过nc监听服务器发送的数据,对数据进行词频统计。实现sparkStreaming流式处
理的wordcount入门程序

三、官网案例

1、启动nc

nc -l -p 6666

2、启动sparkStreaminga案例程序

进入spark安装目录下,以下是本人自己的安装目录

cd /opt/module/spark-local

执行案例程序,端口号与启动nc时的端口号对应

bin/run-example streaming.NetworkWordCount localhost 6666

3、在nc服务端输入测试数据

SparkStreaming入门案例Wordcount_第1张图片

4、测试结果,如下图所示

SparkStreaming入门案例Wordcount_第2张图片

四、使用idea开发Wordcount程序

1、创建一个maven项目
2、在pom.xml文件中添加sparkstreaming项目依赖

		<!--spark-Stream实时处理-->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-streaming_2.11</artifactId>
            <version>2.1.1</version>
        </dependency>

3、在idea中编写Wordcount程序代码

import org.apache.spark.{
     SparkConf, SparkContext}
import org.apache.spark.sql.catalyst.expressions.Second
import org.apache.spark.storage.StorageLevel
import org.apache.spark.streaming.dstream.{
     DStream, ReceiverInputDStream}
import org.apache.spark.streaming.{
     Seconds, StreamingContext}

object SparkStreamingTestOne {
     
  def main(args: Array[String]): Unit = {
     
    //创建SparkConf
    val sparkconf = new SparkConf().setMaster("local[*]").setAppName("SparkStreamingTestOne")
    //创建SparkContext
    val sc = new SparkContext(sparkconf)
    //利用SparkContext创建SparkStramingContext
    val streamingContext = new StreamingContext(sc,Seconds(3))
    //通过创建DStream输入对象,链接到nc服务器创建输入数据源
    val rids:ReceiverInputDStream[String] = streamingContext.socketTextStream("ethan002",6666,StorageLevel.MEMORY_AND_DISK)
    //采集数据,并做分词处理
    val ds:DStream[String] = rids.flatMap(_.split(" "))
    //做词频统计,,,resultDS的结果是一个由元组组成的数组
    val resultDS: DStream[(String, Int)] = ds.map((_,1)).reduceByKey(_+_)
    //将结果打印
    resultDS.print()
    //启动SparkStreaming实时计算
    streamingContext.start()
    //等待计算结束
    streamingContext.awaitTermination()
  }
}

4、在服务器上启动nc,并输入测试数据
SparkStreaming入门案例Wordcount_第3张图片

5、在idea运行Wordcount程序
SparkStreaming入门案例Wordcount_第4张图片

6、执行结果,如图所示:
处理结果显示在idea的控制台
SparkStreaming入门案例Wordcount_第5张图片
注意:Wordcount程序会一直处于执行状态,若要停止,需要在IDEA手动中结束程序


你可能感兴趣的:(sparkStreaming,spark)