2023_Spark_实验十九:SparkStreaming入门案例

SparkStreaming入门案例

一、准备工作
二、任务分析
三、官网案例
四、开发NetWordCount

一、准备工作


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

二、任务分析


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

三、官网案例


启动nc作为服务器端,执行:nc -l 1234,并输入测试数据,如图所示:

  • 启动客户端,执行:
    bin/run-example streaming.NetworkWordCount localhost 1234

注意):如果要执行本例,必须确保机器 cpu 核数大于 2

四、开发NetWordCount

  1. 创建maven工程
  2. 添加maven依赖,即在pom.xml中添加streamming的依赖,如下(如果之前实验已经添加,就不用再添加,如果之前未添加,则需要添加该依赖)
XML 复制代码
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.12</artifactId>
<version>2.1.1</version>
</dependency>

3.开发NetWordCount程序

Scala 复制代码
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 = newSparkConf().setMaster("local[2]").setAppName("StreamingTest")
val streamingContext = new StreamingContext(sparkConf, Seconds(5))

// 创建DStream对象,并链接到nc服务器端
val ris: ReceiverInputDStream[String] = streamingContext.socketTextStream("192.168.245.110", 1234,StorageLevel.MEMORY_AND_DISK)
// 采集数据,并处理数据
val ds: DStream[String] = ris.flatMap(_.split(" "))
println(ris)
// 统计单词
val resultDS: DStream[(String, Int)] = ds.map(x => (x, 1)).reduceByKey(_ + _)
// 打印结果
resultDS.print()
// 启动实时计算
streamingContext.start()
// 等待计算结束
streamingContext.awaitTermination()
}
}

4.先在虚拟机上启动nc服务器:nc -l 1234,并输入测试数据,如图
5.然后运行程序
6.运行结果如下

参考:
https://www.shuzhiduo.com/A/gVdneZLa5W/

相关推荐
渣渣盟36 分钟前
Flink 单流转换算子深度解析:从 Map 到 Reduce 的流式处理基石
大数据·flink
chanmama88881 小时前
品牌全域洞察怎么做?蝉妈妈拆解竞品策略
大数据·网络·人工智能·经验分享·社交电子
Tongzhi20261 小时前
考勤数据本地化存储:通芝科技无感考勤一体机的数据安全逻辑
大数据·数据结构·科技·均值算法·数据库开发·推荐算法
tanglinS1 小时前
双端面磨床汇总:面向工艺工程师的设备选型参考
大数据·运维·人工智能·自动化·材质
猿长大人2 小时前
C# | MediatR 入门指南:后端架构解耦
分布式·后端·架构·c#·.net
湘美书院--湘美谈教育2 小时前
湘美书院人工智能访谈录:AI助力科学研究自动化
大数据·运维·人工智能·机器学习·自动化·电脑·生活
倍利福猎头公司官方账号2 小时前
人形机器人分析——电机(机器人猎头公司专项分析)
大数据·人工智能·机器人·求职招聘·业界资讯
稳石氢能2 小时前
政策落地与市场冷遇并存,氢能产业如何跨越“最后一公里”?
大数据·人工智能
John jj2 小时前
拆解 Telegram 群组频道收录市场:三类方案,一个可运行的评分模型,目前TG中文人工评分加模型评分机制——LetsTG收录“快速”、“无门槛”
大数据·后端·python·深度学习·搜索引擎·django·全文检索
逐米时代3 小时前
工厂数字化规划:BIM与仿真让方案可验证
大数据·网络·人工智能