Spark流编程指引(一)---------------------概述

Spark流是Spark核心API的扩展,它提供了以高扩展,高吞吐量,高容错性的流的方式来处理实时数据的方法。

数据的涞源有很多,可以来自Kafka, Flume, Twitter, ZeroMQ, Kinesis或者TCP sockets。通过使用高级别的函数,比如map,reduce,join,window等,可以用复杂的算法来处理数据。

最后,处理后的数据能够被推送至文件系统,数据库,或者实时的dashboards。实际上,你可以在数据流上应用Spark的机器学习和图形处理算法。

Spark流编程指引(一)---------------------概述_第1张图片

Spark流的内部工作原理如下图。Spark流接收实时数据流,并将数据划分批次,然后交于Spark引擎生成最终成批的结果数据流。

Spark流编程指引(一)---------------------概述_第2张图片

Spark流提供了一个称为离散流或者DSTREAM的高层抽象,它代表了一个连续的数据流。DSTREAM能够通过来自Kafka, Flume, and Kinesis的输入数据创建,也能够通过在其它DSTREAM上使用高级别的操作来创建。在内部实现上,DSTREAM被表示为一个RDDs序列。

这一系列的文章将指导你如何基于DSTREAM编写Spark流程序。你可以用Scala,Java,Python来编写Spark流程序。

注意:Python 的Spark流API是1.2中引入的。它实现了所有的DSTREAM转换和几乎全部在Scala和JAVA接口中支持的输出操作。但是它仅仅支持基本的数据来源,比如文本文件,来自Socket的文本数据。其它的数据源,比如Kafka和Flume,将会在以后的版本中支持。









翻译自:http://spark.apache.org/docs/latest/streaming-programming-guide.html


你可能感兴趣的:(算法,hadoop,spark,spark,大数据,分布式,机器学习)