1、SparkStreaming概述
- 数据处理类型分类
- 静态数据
- 数据源是不变的、有限的、显式离散的
- 多适用于批量计算、离线计算
- 流数据
- 数据是变动的、无限的、连续的
- 多适用于实时计算,能在秒级、秒内处理完成
- 实时数据分类
- 小时级
- 分钟级
- 秒级
- 实时数据分类
- sparkstreaming是什么
- 重要概念说明
- StreamingContext
- 类比于SparkContext,SparksqlContext
- 流计算框架中的中枢类,负责各种环境信息、分发调度等任务。
- 数据源
- 简称:Source,意为DataSource的缩写
- 指流数据的来源是哪里,如文件,Socket输入、Kafka等。
- 离散流
- 输入离散流
- 英文简称:Input DStream
- 将Spark Streaming连接到一个外部Source数据源来读取数据的统称
- 批数据
- 英文称Batch Data
- 连续数据离散化的步骤:将流式实时连续的数据整体转化成以时间片为单位进行分批,即将流式数据转化成时间片为单位数据进行批数据处理,随着时间推移,这些处理结果即形成结果数据流,即流处理引擎形成。
- 时间片或批处理时间间隔
- 窗口长度
- 滑动窗口时间间隔
- StreamingContext
- 静态数据
- 处理流程图示说明
- 框架处理总流程图
- 框架内部工作流程图
Spark Streaming接收实时输入数据流并将数据分成批处理,然后由SparkCore引擎处理,以批量生成最终结果流。
2、scala快速构建SparkStreaming应用
- scala构建SparkStreaming应用步骤
- 步骤实现
- build.sbt中添加spark-streaming依赖
-
<!-- spark-stream依赖--> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming_${scala.compat.version}</artifactId> <version>2.3.2</version> <scope>provided</scope> </dependency>
代码实现
-
def main(args: Array[String]): Unit = { //创建配置文件 val conf=new SparkConf() .setAppName("stream") .setMaster("local[*]") .set("spark.testing.memory","512000000") //创建streamingContext,指定间隔时间 val streamingContext=new StreamingContext(conf,Seconds(5)) //连接到数据源 val lines=streamingContext.socketTextStream("192.168.1.114",9999) //后续编写spark处理world count val wordKV=lines.flatMap(_.split("\t")).map(word=>(word,1)) val wc=wordKV.reduceByKey(_+_) wc.print() //开启streaming streamingContext.start() streamingContext.awaitTermination() }
- netcat介绍
- Linux版本
- 启动netcat命令
- nc -lk 9999 :意为开启本机的9999端口作为对外的TCP数据服务端口
- 开启本机的9999作为TCP服务端口
- 启动netcat命令
- 基本介绍
- netcat是一个通过TCP/UDP在网络中进行读写数据工具(命令),被称为“瑞士军刀”,主要用于网络调试领域、传输领域甚至黑客攻击领域。
- 简称nc,linux自带该命令, windows需要下载netcap的应用程序才行。
-
[root@localhost ~]# nc -lk 9999 sfaf dads dsfd gfgf
- 开启sparkStreaming程序,读取来自9999端口的输入的TCP流数据
- SparkStreaming实现WordCount的流程抽象说明(经典流程)
DStream内部即为RDD持续的离散序列,RDD内部均是以文本行为基本元素,对DStream的处理即映射转化为对内部RDD的处理,故对RDD的算子操作大多数情况下适配于DStream使用,同时DStream提供了更高级别的算子API方便使用。
-
- Linux版本
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。