当前位置:   article > 正文

SparkStreaming入门案例_sparkstreaming案例

sparkstreaming案例

一、准备工作


  • 实验环境:netcat
  • 安装nc:yum install -y nc

二、任务分析


将nc作为服务器端,用户产生数据;启动sparkstreaming案例中的客户端程序,监听服务器端发送过来的数据,并对其数据进行词频统计,即为流式的wordcount入门程序

三、官网案例


  • 启动nc作为服务器端,执行:nc -l -p 6666,并输入测试数据,如图所示:
    在这里插入图片描述

  • 启动客户端,执行:

    bin/run-example streaming.NetworkWordCount localhost 6666
    
    • 1

    结果如图所示:
    在这里插入图片描述
    注意)如果要执行本例,必须确保机器 cpu 核数大于 2
    在这里插入图片描述

四、开发NetWordCount


  1. 创建maven工程
  2. 添加maven依赖,即在pom.xml中添加streamming的依赖,如下:
     <dependency>
         <groupId>org.apache.spark</groupId>
         <artifactId>spark-streaming_2.12</artifactId>
         <version>2.4.8</version>
     </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
  3. 开发NetWordCount程序
    import org.apache.spark.SparkConf
    import org.apache.spark.storage.StorageLevel
    import org.apache.spark.streaming.dstream.{DStream, ReceiverInputDStream}
    import org.apache.spark.streaming.{Seconds, StreamingContext}
    
    object StreamingTest {
      def main(args: Array[String]): Unit = {
        val sparkConf = new SparkConf().setMaster("local[2]").setAppName("StreamingTest")
        val streamingContext = new StreamingContext(sparkConf, Seconds(3))
        // 创建DStream对象,并链接到nc服务器端
        val ris: ReceiverInputDStream[String] = streamingContext.socketTextStream("niit01", 6666, StorageLevel.MEMORY_AND_DISK)
        // 采集数据,并处理数据
        val ds: DStream[String] = ris.flatMap(_.split(" "))
        // 统计单词
        val resultDS: DStream[(String, Int)] = ds.map(x => (x, 1)).reduceByKey(_ + _)
        // 打印结果
        resultDS.print()
        // 启动实时计算
        streamingContext.start()
        // 等待计算结束
        streamingContext.awaitTermination()
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
  4. 先在虚拟机上启动nc服务器:nc -l -p 6666,并输入测试数据,如图:
    在这里插入图片描述
  5. 然后运行程序
  6. 运行结果如下:
    在这里插入图片描述
    注意程序会一直处于运行状态,等待服务器端发送数据 如想停止程序,需要手动去停止。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/975705
推荐阅读
相关标签
  

闽ICP备14008679号