Spark-Streaming的基本原理以及预写日志机制和checkpoint(一)
首先我们要先了解什么是Spark-Streaming:
Spark Streaming是Spark Core API的一种扩展,它可以用于进行大规模、高吞吐量、容错的实时数据流的处理。它支持从很多种数据源中读取数据,比如Kafka、Flume、Twitter、ZeroMQ、Kinesis或者是TCP Socket。并且能够使用类似高阶函数的复杂算法来进行数据处理,比如map、reduce、join和window。处理后的数据可以被保存到文件系统、数据库、Dashboard等存储中。
接下来要知道Spark-Streaming的基本运行原理:
Spark-Streaming内部的基本工作原理如下:接收实时输入数据流,然后将数据拆分成多个batch,比如每收集5秒的数据封装为一个batch,然后将每个batch交给Spark的计算引擎进行处理,最后会生产出一个结果数据流,其中的数据,也是由一个一个的batch所组成的。
关于Spark-Streaming的高级抽象
Spark-Streaming提供了一种高级的抽象,叫做DStream,英文全称为Discretized Stream,中文翻译为“离散流”,它代表了一个持续不断的数据流。DStream可以通过输入数据源来创建,比如Kafka、Flume和Kinesis;也可以通过对其他DStream应用高阶函数来创建,比如map、reduce、join、window。
DStream的内部,其实一系列持续不断产生的RDD。RDD是Spark Core的核心抽象,即,不可变的,分布式的数据集。DStream中的每个RDD都包含了一个时间段内的数据。
接下来就是一些关于面试时的大杀器:
Spark-Streaming checkPoing概述
每一个Spark Streaming应用,正常来说,都是要724小时运转的,这就是实时计算程序的特点,因为要持续不断地对数据进行计算,因此,对实时计算应用的要求,应该是必须要能够对应用程序逻辑无关的失败,进行容错,如果要实现这个目标,Spark-Streaming程序就必须讲座狗的信息checkpoint到容错的存储系统上,从而让它能够错失败中进行恢复
如何对dstream做checkpoint
首先设置还原点目录,其次调用dstream的checkpoint方法
【注意】:dstream的checkpoint的周期一定要是产生batch的时间的整数倍,同时官方建议将checkpoint的事件设置为至少10秒,
通常来说,将checkpoint间隔设置为窗口操作的滑动间隔的5~10倍是个不错的选择
更多关于“云计算培训”的问题,欢迎咨询千锋教育在线名师。千锋教育多年办学,课程大纲紧跟企业需求,更科学更严谨,每年培养泛IT人才近2万人。不论你是零基础还是想提升,都可以找到适合的班型,千锋教育随时欢迎你来试听。