网站大量收购独家精品文档,联系QQ:2885784924

Spark大数据分析与实战(Python+PySpark)课件 第4章 SparkStreaming流数据计算.pptx

Spark大数据分析与实战(Python+PySpark)课件 第4章 SparkStreaming流数据计算.pptx

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第4章SparkStreaming流数据计算Spark大数据分析与实战

01SparkStreaming基本原理SparkStreaming词频统计0203Dstream数据转换操作目录CONTENTS04DStream输出操作05DStream数据源读取

01SparkStreaming基本原理SparkStreaming基本原理

SparkStreaming基本原理批计算一般是先有全量数据,然后将计算应用于这些数据,因此计算结果是一次性输出的。流计算的输入数据是时间上无界的持续,也永远拿不到完整的全量数据进行分析,且结果也是持续输出的,在时间上没有边界,就像水流一样,数据连绵不断地产生并被快速处理。流计算适用于有一定实时性要求的场合,为了提高计算效率,往往尽可能采用增量计算的方式,已计算过的数据不再重复处理SparkStreaming建立在SparkRDD基础之上,它接收实时输入的数据流,然后将数据拆分成多个批次,并将每个批次的数据交给Spark计算引擎处理,这样每个批次的数据就相当于一个局部范围内的离线数据

SparkStreaming基本原理SparkStreaming设计了一个名为DStream的数据结构(离散化数据流),代表连续不断的数据流,实现上是将输入数据流按照预设的时间片进行分段,比如每秒切分一次,每个切分的数据段都被Spark转换成一个批次的RDD数据,这些数据分段则为DStream由于DStream是由切分数据段的RDD构成的,所以DStream的数据处理也就变成了对RDD的操作。在DStream数据集上应用的任何算子,比如map、reduce、join、window等,Spark底层都会将其翻译为对DStream的局部RDD的操作,并生成一个新的DStream

02SparkStreaming词频统计Netcat网络工具测试DStream词频统计

Netcat网络工具测试Ubuntu系统已经附带Netcat网络工具文件名为nc。我们可以开启两个终端窗体,其中左边终端窗体充当监听9999端口的服务端,右边终端窗体充当连接到服务器的客户端,然后双方互发数据并在对方显示如果一切正常,nc服务端和客户端就可以互发数据,每次输入的内容都会在对方的窗体显示,这是因为nc同时支持双向交互操作。测试完毕,按Ctrl+C快捷键结束右侧终端窗体中运行的nc客户端,保留左边的服务端窗体

DStream词频统计SparkStreaming接收的是一个源源不断产生数据的数据源,是不间断循环运行的。在SparkStreaming应用程序中至少需要启动两个线程,其中一个用来接收数据,另一个用来处理数据,如果只有一个线程,就无法对数据进行处理,也就看不到任何实质性的效果

DStream词频统计NetworkWordCount.py具体代码如下:

DStream词频统计接下来通过spark-submit命令将SparkStreaming应用程序提交到Spark中运行当NetworkWordCount.py程序运行之后,每隔3秒就会处理并输出一次结果。接下来找到前面运行nc服务端的终端窗体,在其中随便输入一些单词,稍等片刻即可在SparkStreaming应用程序中打印词频统计的结果信息

DStream词频统计Spark在运行时默认会产生大量日志信息,此时可在Spark的conf目录中通过log4j.properties配置文件设定全局的运行日志级别,或在代码中使用sc.setLogLevel()方法设定当前应用程序的运行日志级别,可以是WARN、ERROR、INFO、DEBUG、ALL等几种保存修改并退出编辑器,重新执行spark-submit命令将NetworkWordCount.py程序提交运行,并在nc服务端窗体再次输入一些单词,此时就可以比较清楚地查看SparkStreaming处理后的输出结果,避免了很多干扰信息

03DStream转换操作DStream无状态转换操作DStream基于状态更新的转换DStream基于滑动窗口的转换

DStream无状态转换操作DStream无状态转换操作仅仅计算当前时间片的数据内容,每个批次的处理结果不依赖于先前批次的数据,也不影响后续批次的数据。所以,DStream无状态转换操作处理的批次数据都是独立的,转换操作被直接应用到每个批次的RDD数据上,DStream的无状态转换操作与RDD的转换操作是类似的,返回的也是一个新的DStream对象除了无状态转换操作,DStream还支持有状态的转换操作,在这种情况下,DStream在计算当前批次数据时,会依赖之前批次的数据或中间结果,并不断把当前计算的数据与历史时间片的数据进行累计

DStream基于状态更新的转换DStream基于

您可能关注的文档

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档