SparkStreaming---简单demo(NetCat)

本文主要讲:利用 SparkStreaming 方式读取并处理 通过Netcat方式获得的数据

一、导入依赖

<dependency>
  <groupId>org.apache.spark</groupId>
  <artifactId>spark-core_2.11</artifactId>
  <version>2.4.7</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql -->
<dependency>
  <groupId>org.apache.spark</groupId>
  <artifactId>spark-sql_2.11</artifactId>
  <version>2.4.7</version>
</dependency>
<dependency>
  <groupId>org.apache.spark</groupId>
  <artifactId>spark-streaming_2.11</artifactId>
  <version>2.4.7</version>
</dependency>

二、编写程序

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

object SparkStreamingDemo1 {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setMaster("local[*]").setAppName("SparkStreaming-1")

    // 定义流处理上下文,数据采集周期为 3 秒
    val streamingContext = new StreamingContext(conf,Seconds(3))

    // 获取数据 --- 通过 Netcat 方式来获取数据
    val rid: ReceiverInputDStream[String] = streamingContext.socketTextStream("192.168.XXX.100", 7777)

    // 处理数据 --- WordCount
    val wordStream:DStream[String] = rid.flatMap(_.split("\\s+"))  // 用flatMap是因为DStream获取到的是rdds
    val mapStream:DStream[(String,Int)] = wordStream.map(x=>(x,1))
    val wordcountStream = mapStream.reduceByKey(_+_)

    // 输出
    wordcountStream.print()

    // 启动采集器
    streamingContext.start()
    streamingContext.awaitTermination()
  }
}

三、测试

1、开启 Netcat 服务

nc -lk 7777

2、执行程序

3、从Netcat端输入数据,查看结果是否被处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值