- 浏览: 595934 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
随着大数据的发展,人们对大数据的处理要求也越来越高,原有的批处理框架MapReduce适合离线计算,却无法满足实时性要求较高的业务,如实时推荐、用户行为分析等。Spark Streaming是建立在Spark上的实时计算框架,通过它提供的丰富的API、基于内存的高速执行引擎,用户可以结合流式、批处理和交互试查询应用。本文将详细介绍Spark Streaming实时计算框架的原理与特点、适用场景。
Spark Streaming实时计算框架
Spark是一个类似于MapReduce的分布式计算框架,其核心是弹性分布式数据集,提供了比MapReduce更丰富的模型,可以在快速在内存中对数据集进行多次迭代,以支持复杂的数据挖掘算法和图形计算算法。Spark Streaming是一种构建在Spark上的实时计算框架,它扩展了Spark处理大规模流式数据的能力。
Spark Streaming的优势在于:
* 能运行在100+的结点上,并达到秒级延迟。
* 使用基于内存的Spark作为执行引擎,具有高效和容错的特性。
* 能集成Spark的批处理和交互查询。
* 为实现复杂的算法提供和批处理类似的简单接口。
基于云梯Spark On Yarn的Spark Streaming总体架构如图1所示。其中Spark on Yarn的启动流程我的另外一篇文章(《程序员》2013年11月期刊《深入剖析阿里巴巴云梯Yarn集群》)有详细描述,这里不再赘述。Spark on Yarn启动后,由Spark AppMaster把Receiver作为一个Task提交给某一个Spark Executor;Receive启动后输入数据,生成数据块,然后通知Spark AppMaster;Spark AppMaster会根据数据块生成相应的Job,并把Job的Task提交给空闲Spark Executor 执行。图中蓝色的粗箭头显示被处理的数据流,输入数据流可以是磁盘、网络和HDFS等,输出可以是HDFS,数据库等。
Spark Streaming的基本原理是将输入数据流以时间片(秒级)为单位进行拆分,然后以类似批处理的方式处理每个时间片数据,其基本原理如图2所示。
Spark Streaming把实时输入数据流以时间片Δt (如1秒)为单位切分成块。Spark Streaming会把每块数据作为一个RDD,并使用RDD操作处理每一小块数据。每个块都会生成一个Spark Job处理,最终结果也返回多块。
Spark Streaming内部实现原理:
使用Spark Streaming编写的程序与编写Spark程序非常相似,在Spark程序中,主要通过操作RDD(Resilient Distributed Datasets弹性分布式数据集)提供的接口,如map、reduce、filter等,实现数据的批处理。而在Spark Streaming中,则通过操作DStream(表示数据流的RDD序列)提供的接口,这些接口和RDD提供的接口类似。图3和图4展示了由Spark Streaming程序到Spark jobs的转换图。
在图3中,Spark Streaming把程序中对DStream的操作转换为DStream Graph,图4中,对于每个时间片,DStream Graph都会产生一个RDD Graph;针对每个输出操作(如print、foreach等),Spark Streaming都会创建一个Spark action;对于每个Spark action,Spark Streaming都会产生一个相应的Spark job,并交给JobManager。JobManager中维护着一个Jobs队列, Spark job存储在这个队列中,JobManager把Spark job提交给Spark Scheduler,Spark Scheduler负责调度Task到相应的Spark Executor上执行。
Spark Streaming的另一大优势在于其容错性,RDD会记住创建自己的操作,每一批输入数据都会在内存中备份,如果由于某个结点故障导致该结点上的数据丢失,这时可以通过备份的数据在其它结点上重算得到最终的结果。
正如Spark Streaming最初的目标一样,它通过丰富的API和基于内存的高速计算引擎让用户可以结合流式处理,批处理和交互查询等应用。因此Spark Streaming适合一些需要历史数据和实时数据结合分析的应用场合。当然,对于实时性要求不是特别高的应用也能完全胜任。另外通过RDD的数据重用机制可以得到更高效的容错处理。
转自:http://www.cnblogs.com/Leo_wl/p/3530464.html
Spark Streaming实时计算框架
Spark是一个类似于MapReduce的分布式计算框架,其核心是弹性分布式数据集,提供了比MapReduce更丰富的模型,可以在快速在内存中对数据集进行多次迭代,以支持复杂的数据挖掘算法和图形计算算法。Spark Streaming是一种构建在Spark上的实时计算框架,它扩展了Spark处理大规模流式数据的能力。
Spark Streaming的优势在于:
* 能运行在100+的结点上,并达到秒级延迟。
* 使用基于内存的Spark作为执行引擎,具有高效和容错的特性。
* 能集成Spark的批处理和交互查询。
* 为实现复杂的算法提供和批处理类似的简单接口。
基于云梯Spark On Yarn的Spark Streaming总体架构如图1所示。其中Spark on Yarn的启动流程我的另外一篇文章(《程序员》2013年11月期刊《深入剖析阿里巴巴云梯Yarn集群》)有详细描述,这里不再赘述。Spark on Yarn启动后,由Spark AppMaster把Receiver作为一个Task提交给某一个Spark Executor;Receive启动后输入数据,生成数据块,然后通知Spark AppMaster;Spark AppMaster会根据数据块生成相应的Job,并把Job的Task提交给空闲Spark Executor 执行。图中蓝色的粗箭头显示被处理的数据流,输入数据流可以是磁盘、网络和HDFS等,输出可以是HDFS,数据库等。
Spark Streaming的基本原理是将输入数据流以时间片(秒级)为单位进行拆分,然后以类似批处理的方式处理每个时间片数据,其基本原理如图2所示。
Spark Streaming把实时输入数据流以时间片Δt (如1秒)为单位切分成块。Spark Streaming会把每块数据作为一个RDD,并使用RDD操作处理每一小块数据。每个块都会生成一个Spark Job处理,最终结果也返回多块。
Spark Streaming内部实现原理:
使用Spark Streaming编写的程序与编写Spark程序非常相似,在Spark程序中,主要通过操作RDD(Resilient Distributed Datasets弹性分布式数据集)提供的接口,如map、reduce、filter等,实现数据的批处理。而在Spark Streaming中,则通过操作DStream(表示数据流的RDD序列)提供的接口,这些接口和RDD提供的接口类似。图3和图4展示了由Spark Streaming程序到Spark jobs的转换图。
在图3中,Spark Streaming把程序中对DStream的操作转换为DStream Graph,图4中,对于每个时间片,DStream Graph都会产生一个RDD Graph;针对每个输出操作(如print、foreach等),Spark Streaming都会创建一个Spark action;对于每个Spark action,Spark Streaming都会产生一个相应的Spark job,并交给JobManager。JobManager中维护着一个Jobs队列, Spark job存储在这个队列中,JobManager把Spark job提交给Spark Scheduler,Spark Scheduler负责调度Task到相应的Spark Executor上执行。
Spark Streaming的另一大优势在于其容错性,RDD会记住创建自己的操作,每一批输入数据都会在内存中备份,如果由于某个结点故障导致该结点上的数据丢失,这时可以通过备份的数据在其它结点上重算得到最终的结果。
正如Spark Streaming最初的目标一样,它通过丰富的API和基于内存的高速计算引擎让用户可以结合流式处理,批处理和交互查询等应用。因此Spark Streaming适合一些需要历史数据和实时数据结合分析的应用场合。当然,对于实时性要求不是特别高的应用也能完全胜任。另外通过RDD的数据重用机制可以得到更高效的容错处理。
转自:http://www.cnblogs.com/Leo_wl/p/3530464.html
发表评论
文章已被作者锁定,不允许评论。
-
Spark 会把数据都载入到内存吗
2017-06-01 10:14 813前言 很多初学者其实对Spark的编程模式还是RDD这个概念理 ... -
Spark Driver和Executor资源调度学习
2017-05-31 16:14 974一、引子 在Worker Actor中,每次LaunchE ... -
Spark 实现TopN的问题(groupBy)
2017-05-31 14:11 1398t2.txt ab 11 ab 23 ab 13 a ... -
Spark block和partition的区别
2017-05-31 13:48 972hdfs中的block是分布式存储的最小单元,类似于盛放文件的 ... -
Spark 什么是DAG(有向无环图)(窄依赖和宽依赖)
2017-05-26 16:46 2142在Spark里每一个操作生成一个RDD,RDD之间连一条边,最 ... -
Spark 为什么比Hadoop快
2017-05-25 16:12 1334Spark SQL比Hadoop Hive快, ... -
Spark 集群的搭建(1.6.3)
2017-05-24 10:41 8参考内容:http://www.cnblogs.com/one ... -
Spark shuffle实现详细探究学习
2017-04-28 15:08 571Background 在MapReduce框架中,shuffl ... -
Spark collect和take函数学习(RDD-->Array)
2017-04-27 15:44 2105将RDD转成Scala数组,并返回。 函数原型 def ... -
Spark MLlib平台的协同过滤算法---电影推荐系统学习
2017-04-27 15:33 625import org.apache.log4j.{Level, ... -
Spark parallelize函数和makeRDD函数的区别(Array-->RDD)
2017-04-27 14:56 822我们知道,在Spark中创建RDD的创建方式大概可以分为三种: ... -
Spark 集群的搭建学习(1.6.3)
2017-04-25 14:30 783Spark是一个快速、通用的计算集群框架,它的内核使用Scal ... -
Spark SQL简单示例学习
2017-04-25 14:17 757Spark SQL 作为Apache Spark大数据框架的一 ... -
Spark RDD基于内存的集群计算容错抽象(核心概念)
2017-04-11 20:09 671摘要 本文提出了分布 ... -
Spark 入门知识学习
2017-04-08 11:46 399什么是Spark Apache Spark是 ...
相关推荐
对于熟悉Spark基础(Spark Core)的用户而言,Spark Streaming提供了平滑的学习曲线和强大的数据处理能力。 2. Spark Streaming架构和特性 Spark Streaming的计算流程涉及从数据源接收数据,转换成RDDs(弹性分布式...
综上所述,Spark Streaming通过其独特的微批处理执行模型,将实时数据流处理问题转换成了Spark Core中熟悉的RDD处理问题,同时结合了内存计算的优势和与其他大数据组件的良好集成性,为实时数据处理提供了强大的工具...
Spark Streaming 入门案例 Spark Streaming 是一种构建在 Spark 上的实时计算框架,用来处理大规模流式数据。...Spark Streaming 的应用场景非常广泛,可以应用于实时数据处理、机器学习、数据挖掘等领域。
Spark Streaming内部处理机制的核心在于将实时数据流拆分为一系列微小的批次(通常是几秒至几十秒的间隔),然后利用Spark Engine对这些微批次数据进行处理,最终产生处理后的结果数据。这种机制使得Spark Streaming...
Spark Streaming能够以微批处理的方式处理数据流,将实时数据流分解成小的时间窗口(称为DStream,Discretized Stream),然后应用Spark的计算模型进行处理。 **DStream:离散化数据流** DStream是Spark Streaming...
- 可以使用Spark的所有功能,例如机器学习和图计算; - 支持批处理和流处理一体化。 而Storm在以下方面表现突出: - 低延迟,适合实时性要求极高的场景; - 支持多种编程语言,有良好的多语言编程支持; - 高容错性...
SparkStreaming 的基本工作原理是将实时数据流分割成多个时间窗口(micro-batches),然后使用 Spark Core 的并行和分布式处理能力对每个批次进行计算。这种方式既保留了 Spark 的内存计算优势,也实现了对实时数据...
Spark Streaming是Spark的一个扩展,用于处理实时数据流。它允许用户利用Spark的功能来实时分析数据流。这与传统Spark程序一次性处理一批历史数据的方式不同,Spark Streaming可以持续不断地从数据源接收数据,并将...
Flink、Storm、Spark Streaming三种流框架的对比分析 Flink架构及特性分析 Flink是一个原生的流处理系统,提供高级的API。Flink也提供API来像Spark一样进行批处理,但两者处理的基础是完全不同的。Flink把批处理...
Spark Streaming广泛应用于实时数据处理、流式计算和机器学习等领域。 知识点2: 列车实时定位 列车实时定位是指在铁路系统中,使用各种传感器和GPS技术,实时跟踪列车的位置和速度。这种技术可以提高铁路系统的...
3. 集成性:Spark Streaming无缝集成于整个Spark生态,可以与Spark SQL、MLlib和GraphX等组件协同工作,实现数据处理、机器学习和图分析等多种任务。 4. 容错性:通过检查点和状态管理,Spark Streaming能够保证在...
2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。...
"Spark"是关键的技术标签,它是一个用于大规模数据处理的快速、通用和可扩展的开源框架,支持批处理、交互式查询(Spark SQL)、图计算(GraphX)以及我们的重点——实时流处理(Spark Streaming)。"毕业设计"和...
通过Spark-Streaming,我们可以利用机器学习算法(如基于统计的方法、聚类、深度学习等)对日志数据进行实时分析,识别出与正常行为模式偏离的事件,从而发现潜在的问题或攻击。 总结来说,这个系统构建了一个完整...
在大数据处理领域,Spark作为一款高效、通用的计算框架,被广泛应用在数据分析、机器学习等多个场景。本项目涉及的核心知识点包括Spark Core、Spark SQL和Spark Streaming,同时结合了Scala和Java编程语言,以及...
在本项目中,"基于SparkStreaming的实时音乐推荐系统源码.zip",主要涉及的是如何利用Apache Spark Streaming这一强大的实时处理框架,构建一个能够实时分析用户行为并进行个性化音乐推荐的系统。Spark Streaming是...
在IT行业中,日志分析是监控...综上所述,这个项目结合了Java、Spark Streaming、Kafka和HBase等技术,提供了一种实时、高效、可扩展的日志统计分析解决方案,对于学习实时大数据处理和分布式系统有着很高的参考价值。
1、资源内容:基于 Spark Streaming + ALS 的餐饮推荐系统+运行截图+源代码+文档说明 2、代码特点:内含运行结果,不会运行可私信,参数化编程、参数可方便更改、代码编程思路清晰、注释明细,都经过测试运行成功,...
在Spark Streaming中,可以设置接收数据的时间间隔,例如每两秒读取一次数据并进行计算,这种方式适用于实时数据分析场景。 ### Spark本地模式 #### `local[2]` - **`local[N]`**:指定N表示在本地模式下启动N个...
通过将实时数据流分割成一系列小的批处理作业,Spark Streaming能够在保证低延迟的同时,利用Spark的并行计算能力高效处理数据。 此外,书中还讨论了如何设置和配置Spark Streaming应用,包括数据源的接入,如Kafka...