概述

什么是 Spark Streaming?
Spark Streaming is an extension of the core Spark API that enables scalable, high-throughput, fault-tolerant stream processing of live data streams.
根据官网的解释,Spark Streaming是一个基于Spark Core的一个高扩展,高吞吐量,容错的一个处理实时流数据的 工具(流处理).

数据的流处理
Data can be ingested from many sources like Kafka, Flume, Kinesis, or TCP sockets, and can be processed using complex algorithms expressed with high-level functions like map, reduce, join and window. Finally, processed data can be pushed out to filesystems, databases, and live dashboards.

官网说明中,可以发现,数据可以是Kafka,Flume等数据源头,经过相应的转化处理,可以将处理的结果push到外部文件系统,数据库等

处理流程图

一句话总结:将不同的数据源经过Spark Streaming处理,接着将处理的结果输出到外部文件系统

其中,Spark Streaming拥有下面几个特性:

  1. 高度容错(能够从错误中快速恢复过来)
  2. 能够运行在成百上千的机器节点上
  3. 具有低延时
  4. 可以结合机器学习,图计算等同层框架做相应处理

上面的第四点,想强调一下,这个特性很重要的,这样我们就可以结合其余的子框架来做更复杂的处理.这点也体现了
One Stack to rule them all.
"一栈式解决不同场景"

工作原理
Internally, it works as follows. Spark Streaming receives live input data streams and divides the data into batches, which are then processed by the Spark engine to generate the final stream of results in batches.

官网说明中,可以发现,Spark Streaming会去接收实时输入的数据流,将接收的数据流按照要求分成一些小批次数据,将拆分的每一个小批次数据交给Spark Engine去处理,最终,也会得到一些小批次的处理结果

如图所示:

Spark Streaming应用场景
简单举个大家熟悉的例子:
Spark Streaming可以用来做电商网站的实时推荐商品系统
,想想,现在,当你在购物网站上搜索浏览了某个数据,那么,马上它就会为你实时推荐相应的商品,供你选择,这样,可以加大网站的盈利

再次理解Spark Streaming的工作原理

工作原理(粗粒度)

Spark Streaming接收到实时数据流,将数据按照指定的时间切成一些小的数据块,然后将一系列的小的数据库传给Spark Engine去处理.最后,将处理的结果,push到外部文件系统数据库等.

工作原理(细粒度)

先理解一下有一个叫做Context上下文的概念;
Spark SQL中有:
SQL Context/HiveContext
Spark Core中有:
SparkContext
Spark Streaming中有:
Streaming Context等概念

Receiver:Driver端启动的,用于接收数据

一个Spark应用程序中存在SparkContext和SparkContext


[上图,来自慕课网Michael__PK老师]

处理步骤:

  1. Driver会在Executor端中启动一些Receiver的接收器,
  2. 接收器启动之后,会把Input data Stream拆分为一些blocks存放在内存里面(多副本的话,会把blocks拷贝到相应的Executor中去),
  3. 之后,我们的Receiver会把我们blocks块信息告诉StreamingContext
  4. ,每个周期到了,我们的StreamingContex会通知SparkContext启动一些jobs,
  5. SparkContext会把job分发到Executor上执行

好的,到这里,Spark Streaming的基本介绍就完成了,接下来我们队核心概念进行理解

Spark Streaming 入门的更多相关文章

  1. spark streaming 入门例子

    spark streaming 入门例子: spark shell import org.apache.spark._ import org.apache.spark.streaming._ sc.g ...

  2. Spark Streaming入门

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文将帮助您使用基于HBase的Apache Spark Streaming.Spark Streaming是Spark API核心的一个扩 ...

  3. Spark Streaming 入门指南

    这篇博客帮你开始使用Apache Spark Streaming和HBase.Spark Streaming是核心Spark API的一个扩展,它能够处理连续数据流. Spark Streaming是 ...

  4. Spark基础:(七)Spark Streaming入门

    介绍 1.是spark core的扩展,针对实时数据流处理,具有可扩展.高吞吐量.容错. 数据可以是来自于kafka,flume,tcpsocket,使用高级函数(map reduce filter ...

  5. 学习笔记:spark Streaming的入门

    spark Streaming的入门 1.概述 spark streaming 是spark core api的一个扩展,可实现实时数据的可扩展,高吞吐量,容错流处理. 从上图可以看出,数据可以有很多 ...

  6. Spark Streaming笔记

    Spark Streaming学习笔记 liunx系统的习惯创建hadoop用户在hadoop根目录(/home/hadoop)上创建如下目录app 存放所有软件的安装目录 app/tmp 存放临时文 ...

  7. Update(Stage4):Spark Streaming原理_运行过程_高级特性

    Spark Streaming 导读 介绍 入门 原理 操作 Table of Contents 1. Spark Streaming 介绍 2. Spark Streaming 入门 2. 原理 3 ...

  8. Spark入门实战系列--7.Spark Streaming(上)--实时流计算Spark Streaming原理介绍

    [注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .Spark Streaming简介 1.1 概述 Spark Streaming 是Spa ...

  9. Spark入门实战系列--7.Spark Streaming(下)--实时流计算Spark Streaming实战

    [注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .实例演示 1.1 流数据模拟器 1.1.1 流数据说明 在实例演示中模拟实际情况,需要源源 ...

随机推荐

  1. 移动端 rem单位做适配的 媒体查询节点

    @media screen and (min-width:300px){html,body,input{font-size:15px}}@media screen and (min-width:320 ...

  2. Apache—dbutils开源JDBC工具类库简介

    Apache—dbutils开源JDBC工具类库简介 一.前言 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用 ...

  3. js 调用手机摄像头或相册并展示图片

    效果图 手机浏览器.微信打开该网页,都支持调用摄像头拍照和打开相册. 先看最终结果: 每次点击“点击上传”,可以选择相册或者拍照,选完以后可以多展示一张图片,同时上传服务器. 点击“重新上传”,清空所 ...

  4. 良许 | 网络检测神器 ss 命令,你可能根本就不会用!

    今天我们来介绍一下 Linux ss 命令. ss 是 Socket Statistics 的缩写,用来统计 socket 连接的相关信息,它跟 netstat 差不多,但有着比 netstat 更强 ...

  5. NLP(二) 获取数据源和规范化

    Why we do this 将获取的数据统一格式,得到规范化和结构化得数据 字符串操作 # 创建字符串列表和字符串对象 namesList = ['Tuffy','Ali','Nysha','Tim ...

  6. HDU- 6437.Videos 最“大”费用流 -化区间为点

    参考和完全学习:http://www.cnblogs.com/xcantaloupe/p/9519617.html HDU-6437 题意: 有m场电影,电影分为两种,看一场电影可以得到对应的快乐值. ...

  7. CodeForces 804C Ice cream coloring

    Ice cream coloring 题解: 这个题目中最关键的一句话是, 把任意一种类型的冰激凌所在的所有节点拿下来之后,这些节点是一个连通图(树). 所以就不会存在多个set+起来之后是一个新的完 ...

  8. ☆1003 Dijstra

    循环N次 算法分为两部分: 1)找到距离最小的城市,找不到距离更小的城市时退出方法 2)更新距离 实际操作时,先初始化: 更新dis为INF,更新dis[start] = 0: 变种: 找最短路径的条 ...

  9. C++数据类型(data type)介绍

    在编写程序时,数据类型(data type)定义了使用存储空间的(内存)的方式. 程序员通过定义数据类型(data type),告诉特定存储空间这里要存储的数据类型是什么,以及你即将操作他的方式.(注 ...

  10. C#开发BIMFACE系列25 服务端API之获取模型数据10:获取楼层对应面积分区列表

    系列目录     [已更新最新开发文章,点击查看详细] 在<C#开发BIMFACE系列22 服务端API之获取模型数据7:获取多个模型的楼层信息>中,返回的楼层信息结果中包含了楼层的具体信 ...