为了账号安全,请及时绑定邮箱和手机立即绑定

Spark Streaming

标签:
Spark

Spark treaming简介

Spark Streaming是Spark中的一个组件,具有高吞吐量,容错能力强的特点,基于Spark Core进行构建,也能够与Spark core.Spark SQL进行混合编程,用于对流式进行处理,类似于Storm.

Spark Streaming的输入和输出

webp

SS的输入输出

如上图所示,Spark Streming是流式数据的一个主要处理组件,左边是数据源的输入,右边是数据源的输出,此外,Spark Streaming也能和MLlib(机器学习)以及Graphx完美融合

DStream

Spark Streaming有一个针对流式计算的组件,叫DStream,正如Spark core的组件RDD,Saprk SQL的组件DataFrame和DataSet.

webp

DStream的源码

在源码中DStream是通过HashMap来保存他所管理的数据流的。K是RDD中数据流的时间,V是包含数据流的RDD。

webp

数据传输示意图

DStream采用微批次架构处理,它是由一堆RDD组成的集合,它的工作原理是将输入的数据切割成一个个单位时间内的RDD,于是每个单位时间内都有一个RDD,然后每一个RDD又会通过Saprk

Core处理成新的流.,因此Spark Streaming输出的是单位时间内一节一节的流,然后递给Saprk

Core后,它输出的也是一节一节的流(RDD组成的序列)

Streaming的输入数据源

Streaming的数据源分为三种方式:文件数据源 / 自定义数据源 / RDD队列

文件数据源: Spark Streaming会监控一个目录,这个目录会是HDFS的目录,这个目录下面一旦有文件进入,Streaming就会处理这个文件的信息.,前提是这些文件具有相同的格式,可以通过移动来实现文件进入

自定义数据源:

自定义数据源通过继承Receiver,实现onStart.onStop方法来自定义数据源采集,具体步骤如下:

1. 新建一个class去继承Receiver,并给Receiver传入一个类型的参数,该类型参数是你需要接收的数据的类型.

2.重写Receiver的方法,onStart方法(在Receiver启动的时候调用的方法). onStop方法(在Receiver正常体制的情况下调用的方法)

3.在程序中通过streamingContext.receiverStream(new CustomeReceiver)来调用你的定制化Receiver.

webp

代码

webp

webp

代码写好后,打成jar包,在hadoop下启动发射语句 nc -lk 9999,再在spark下启动那个jar,就OK了

RDD队列

RDD队列是streamingContext()的实例,调用queuestream(RDD),里面传入一个RDD队列,代码如下:

webp

RDD队列数据源

Streaming和Kafka的对接

数据进入kafka输入端,形成一个kafka队列,队列依次进入streaming里,通过streaming的处理,在通过kafka的输出端输出来

先启动zookeeper,再启动kafka  bin/kafka-server-start.sh-daemon ./config/server.properties

下次补充..

Streaming和Flume的对接

下次补充..



作者:终生学习丶
链接:https://www.jianshu.com/p/fa906e8d692c


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消