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的指令:

Scala 复制代码
      在Windows下:nc -lp 9999
      在linux下: nc -lk 9999
代码:
Scala 复制代码
package cn.olo.stream

import org.apache.spark.SparkConf
import org.apache.spark.streaming.dstream.{DStream, ReceiverInputDStream}
import org.apache.spark.streaming.{Seconds, StreamingContext}

object StreamDemo {
  def main(args: Array[String]): Unit = {
    // 连接SparkStreaming
    val sparkConf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("sparkStreaming")
    /*
  1.方法:StreamingContext(形参)
  2.形参:
    形参1:conf: SparkConf:spark配置对象
    形参2:batchDuration: Duration:采集时间
 */
    val ssc = new StreamingContext(sparkConf,Seconds(5))

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

    // 1. 获取netcat工具9999端口的连接,并开始接收数据
    // 从socket中获取数据:一行一行的获取

    val socketDS: ReceiverInputDStream[String] = ssc.socketTextStream("localhost",9999)

    // 2. 数据处理
    val wordDS: DStream[String] = socketDS.flatMap(_.split(" "))

    val wordToSumDS: DStream[(String, Int)] = wordDS.map((_,1)).reduceByKey(_ + _ )

    // 3. 打印数据
    wordToSumDS.print()

    // 4. Driver程序执行时,streaming处理过程不能结束

    // 采集器在正常情况下启动后就不应该停止,除非特殊情况

    // 启动采集器
    ssc.start()

    // 等待采集器的结束
    ssc.awaitTermination()


  }

}
结果:

解析:

a、采集周期时间之间,每一个采集周期生成一个RDD,按照时间的顺序依次进行

b、在每一个采集周期内,会执行wordcount计算,最终得出:统计出每一个采集周期时间的wordcount

相关推荐
IT研究室16 小时前
大数据毕业设计选题推荐-基于大数据的宫颈癌风险因素分析与可视化系统-Spark-Hadoop-Bigdata
大数据·hadoop·spark·毕业设计·源码·数据可视化·bigdata
武子康16 小时前
Java-118 深入浅出 MySQL ShardingSphere 分片剖析:SQL 支持范围、限制与优化实践
java·大数据·数据库·分布式·sql·mysql·性能优化
闯闯桑16 小时前
toDF(columns: _*) 语法
开发语言·前端·spark·scala·apache
IT毕设梦工厂16 小时前
大数据毕业设计选题推荐-基于大数据的高级大豆农业数据分析与可视化系统-Hadoop-Spark-数据可视化-BigData
大数据·数据分析·课程设计
专注数据的痴汉16 小时前
「数据获取」《中国服务业统计与服务业发展(2014)》
大数据·人工智能
镜舟科技17 小时前
告别 Hadoop,拥抱 StarRocks!政采云数据平台升级之路
大数据·starrocks·数据仓库·hadoop·存算分离
毕设源码-赖学姐17 小时前
【开题答辩全过程】以 基于Hadoop电商数据的可视化分析为例,包含答辩的问题和答案
大数据·hadoop·分布式
时序数据说17 小时前
时序数据库IoTDB的核心优势
大数据·数据库·物联网·开源·时序数据库·iotdb
喂完待续18 小时前
【Big Data】Apache Kafka 分布式流处理平台的实时处理实践与洞察
分布式·kafka·消息队列·big data·数据处理·序列晋升
计算机毕设残哥18 小时前
HDFS存储农业大数据的秘密是什么?高级大豆数据分析与可视化系统架构设计思路
大数据·hadoop·python·hdfs·数据分析·spark·django