• spark stream入门案例:netcat准实时处理wordCount(scala 编程)


    目录

    案例需求

    代码

    结果

    解析


             案例需求:

            使用netcat工具向9999端口不断的发送数据,通过SparkStreaming读取端口数据并统计不同单词出现的次数

            -- 1. Spark从socket中获取数据:一行一行的获取
            -- 2. Driver程序执行时,streaming处理过程不能结束
            -- 3. 采集器在正常情况下启动后就不应该停止,除非特殊情况
            -- 4. 采集器位于一个executor中,是一个线程,执行时需要一个核,如果设定的总核数为1时,那么在运行时因为没有核数,所以不会有打印结果,所以sparkStreaming使用的核数至少为2个
            -- 5. print()方法,默认是打印10行结果
            -- 6. netcat的指令:
     

    1.       在Windows下:nc -lp 9999
    2.       在linux下: nc -lk 9999

            代码: 
    1. package cn.olo.stream
    2. import org.apache.spark.SparkConf
    3. import org.apache.spark.streaming.dstream.{DStream, ReceiverInputDStream}
    4. import org.apache.spark.streaming.{Seconds, StreamingContext}
    5. object StreamDemo {
    6. def main(args: Array[String]): Unit = {
    7. // 连接SparkStreaming
    8. val sparkConf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("sparkStreaming")
    9. /*
    10. 1.方法:StreamingContext(形参)
    11. 2.形参:
    12. 形参1:conf: SparkConf:spark配置对象
    13. 形参2:batchDuration: Duration:采集时间
    14. */
    15. val ssc = new StreamingContext(sparkConf,Seconds(5))
    16. // 需求:使用netcat工具向9999端口不断的发送数据,通过SparkStreaming读取端口数据并统计不同单词出现的次数
    17. // 1. 获取netcat工具9999端口的连接,并开始接收数据
    18. // 从socket中获取数据:一行一行的获取
    19. val socketDS: ReceiverInputDStream[String] = ssc.socketTextStream("localhost",9999)
    20. // 2. 数据处理
    21. val wordDS: DStream[String] = socketDS.flatMap(_.split(" "))
    22. val wordToSumDS: DStream[(String, Int)] = wordDS.map((_,1)).reduceByKey(_ + _ )
    23. // 3. 打印数据
    24. wordToSumDS.print()
    25. // 4. Driver程序执行时,streaming处理过程不能结束
    26. // 采集器在正常情况下启动后就不应该停止,除非特殊情况
    27. // 启动采集器
    28. ssc.start()
    29. // 等待采集器的结束
    30. ssc.awaitTermination()
    31. }
    32. }

    结果:

    解析:

            a、采集周期时间之间,每一个采集周期生成一个RDD,按照时间的顺序依次进行
            b、在每一个采集周期内,会执行wordcount计算,最终得出:统计出每一个采集周期时间的wordcount

  • 相关阅读:
    uboot添加新板子
    吉林大学计算机组成原理软/硬件接口真题期末题书后习题
    动态规划- 背包问题总结(一)
    【Git】Git 概述及安装
    面试突击 :MySQL 常用引擎有哪些?
    机器学习笔记自最优化理论与方法(十一)无约束优化问题——关于共轭方向法重要特征的相关证明
    7个关键词总结2022上半年智慧城市发展
    终极篇章_springMVC_文件上传和下载
    矩阵分析与应用-15-逆矩阵
    WZOI-348机动车违章识别系统
  • 原文地址:https://blog.csdn.net/jojo_oulaoula/article/details/133851872