千家信息网

第84课:StreamingContext、DStream、Receiver深度剖析

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本课分成四部分讲解,第一部分对StreamingContext功能及源码剖析;第二部分对DStream功能及源码剖析;第三部分对Receiver功能及源码剖析;最后一部分将StreamingConte
千家信息网最后更新 2026年11月01日第84课:StreamingContext、DStream、Receiver深度剖析

本课分成四部分讲解,第一部分对StreamingContext功能及源码剖析;第二部分对DStream功能及源码剖析;第三部分对Receiver功能及源码剖析;最后一部分将StreamingContext、DStream、Receiver结合起来分析其流程。

一、StreamingContext功能及源码剖析:

1、 通过Spark Streaming对象jssc,创建应用程序主入口,并连上Driver,接收数据服务端口9999写入源数据

2、 Spark Streaming的主要功能有:

  • 主程序的入口;

  • 提供了各种创建DStream的方法接收各种流入的数据源(例如:Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等);

  • 通过构造函数实例化Spark Streaming对象时,可以指定master URL、appName、或者传入SparkConf配置对象、或者已经创建的SparkContext对象;

  • 将接收的数据流传入DStreams对象中;

  • 通过Spark Streaming对象实例的start方法来启动当前应用程序的流计算框架或通过stop方法结束当前应用程序的流计算框架;

二、DStream功能及源码剖析:

1、 DStream是RDD的模板,DStream是抽象的,RDD也是抽象

2、 DStream的具体实现子类如下图所示:

3、 以StreamingContext实例的socketTextSteam方法为例,其执行完的结果返回DStream对象实例,其源码调用过程如下图:

socket.getInputStream获取数据,while循环来存储数据(内存、磁盘)

三、Receiver功能及源码剖析:

1、Receiver代表数据的输入,接收外部输入的数据,如从Kafka上抓取数据;

2、Receiver运行在Worker节点上;

3、Receiver在Worker节点上抓取Kafka分布式消息框架上的数据时,具体实现类是KafkaReceiver;

4、Receiver是抽象类,其抓取数据的实现子类如下图所示:

5、 如果上述实现类都满足不了您的要求,您自己可以定义Receiver类,只需要继承Receiver抽象类来实现自己子类的业务需求。

四、StreamingContext、DStream、Receiver结合流程分析:

(1)inputStream代表了数据输入流(如:Socket、Kafka、Flume等)

(2)Transformation代表了对数据的一系列操作,如flatMap、map等

(3)outputStream代表了数据的输出,例如wordCount中的println方法:

数据在流进来之后,最终还是基于RDD进行执行,在处理流进来的数据时是DStream进行Transformation,StreamingContext会根据Transformation生成DStreamGraph,而DStreamGraph就是DAG的模板,这个模板是被框架托管的。当我们指定时间间隔的时候,Spark Streaming框架会自动触发Job,所以在开发者编写好的Spark代码时(如:flatMap、collect、print),不会导致job的运行,job运行是
Spark Streaming框架自动产生的。

总结:

使用Spark Streaming可以处理各种数据来源类型,如:数据库、HDFS,服务器log日志、网络流,其强大超越了你想象不到的场景,

只是很多时候大家不会用,其真正原因是对Spark、spark streaming本身不了解。

备注:

资料来源于:DT_大数据梦工厂(IMF传奇行动绝密课程)

更多私密内容,请关注微信公众号:DT_Spark

如果您对大数据Spark感兴趣,可以免费听由王家林老师每天晚上20:00开设的Spark永久免费公开课,地址YY房间号:68917580


数据 功能 对象 源码 剖析 框架 方法 代表 实例 子类 应用程序 模板 程序 应用 输入 运行 下图 入口 时候 来源 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司的优势 滨湖区互联网智能科技产品供应 云创客互联网科技公司 互联网科技公司需要的职位 重庆威客帮互联网科技 科技互联网大厂 互联网媒体平台算高科技产业 互联网科技扶贫时间 电子科技大学互联网创业大赛 国大互联网教育科技有限公司工作 燊美集互联网科技有限公司 浙南科技城互联网大厦建设工程 东莞新华互联网科技学校 互联网科技大赛获奖感言 互联网科技公司营业执照怎么办理 北京市互联网新科技 宁波跨境商互联网科技有限公司 科技互联网公司两年变化 河南商务圈互联网科技有限公司 科技发展第三阶段互联网时代 鸠鸠互联网科技 互联网科技资迅 互联网科技金融 北京互联网科技 互联网 科技创新 晓花互联网科技有限公司网址 雨阳互联网卡科技有限公司 优雇互联网科技有限公司 恒生互联网科技趋势 知域互联网科技有限公司官网
0