首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

了解Spark Streaming

Spark Streaming使用离散化流作为抽象表示,叫做DStream。Dstream是随着时间推移而收到的数据的序列。在内部,每个时间区间收到的数据都作为RDD存在,DStream是由这些RDD所组成的序列。DStream可以从各种输入源创建,如FlumeKafka或者HDFS。创建出来的DStream支持两种操作,转化和输出。

Spark Streaming的高层次架构

DStream及其转化关系

Spark Streaming在Spark各组件中的执行过程

转化操作

DStream的转化操作分为以下两种:

无状态转化:无状态转化操作就是简单把RDD转化操作应用到每个批次上。

在无状态转化操作中,每个批次的处理不依赖于之前批次的数据,像RDD的map,filter,reduceBykey等操作都是无状态转化操作。

有状态转化:DSteam的有状态转化操作是跨时间区间跟踪数据的操作,即一些先前批次的数据也被用来在新的批次中计算结果。

有状态转化操作需要使用之前批次的数据或者中间结果来计算当前批次的数据。有状态转化操作包括基于滑动窗口的转化操作和追踪状态变化的转化操作。

输出操作

输出操作指定了对流数据经转化操作得到的数据所要执行的操作,一旦调试好了程序,就可以使用输出操作来保存结果了。在Scala中将DStream保存为文件:

还可以用saveAsHadoopFiles()函数,接收Hadoop输出格式存储。存储SequenceFile Spark Streaming比较特殊:

还有一个通用的输出操作foreachRDD(),用来对DStream中的RDD运行任意计算:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190911A08ACB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券