Spark Streaming

2160 查看

随着大数据的发展,人们对大数据的处理要求也越来越高,原有的批处理框架MapReduce适合离线计算,却无法满足实时性要求较高的业务,如实时推荐、用户行为分析等。 Spark Streaming是建立在Spark上的实时计算框架,通过它提供的丰富的API、基于内存的高速执行引擎,用户可以结合流式、批处理和交互试查询应用。本文将详细介绍Spark Streaming实时计算框架的原理与特点、适用场景。

优点

计算性能
容错性
实时性
可用性
一致性
扩展性
吞吐量
性能优化

大数据中流式数据的概念?

Storm Spark

storm是实时处理,spark和hadoop是批处理,两者是互补。在Hadoop2.0之后,hadoop使用了新的yarn框架,map/reduce只是其中一种默许了,spark也可以在hadoop的yarn框架下运行的,所以2者还会是融合的。
  spark还有与storm相同功能的 Spark Steaming,实时处理流式数据。可以顺着Hadoop -> spark -> spark Steaming一路学下去,storm是否学习,你可以自己选择下。如果有相同功能的spark Steaming,肯定是学习spark Steaming啦。

Spark Streaming:大规模流式数据处理的新贵

http://www.csdn.net/article/2014-01-28/2818282-Spark-Streaming-big-data

提到Spark Streaming,我们不得不说一下BDAS(Berkeley Data Analytics Stack),这个伯克利大学提出的关于数据分析的软件栈。从它的视角来看,目前的大数据处理可以分为如以下三个类型。
复杂的批量数据处理(batch data processing),通常的时间跨度在数十分钟到数小时之间。
基于历史数据的交互式查询(interactive query),通常的时间跨度在数十秒到数分钟之间。
基于实时数据流的数据处理(streaming data processing),通常的时间跨度在数百毫秒到数秒之间。
目前已有很多相对成熟的开源软件来处理以上三种情景,我们可以利用MapReduce来进行批量数据处理,可以用Impala来进行交互式查询,对于流式数据处理,我们可以采用Storm。对于大多数互联网公司来说,一般都会同时遇到以上三种情景,那么在使用的过程中这些公司可能会遇到如下的不便。

附录 Spark

http://www.linuxidc.com/Linux/2013-08/88593.htm
mapreduce分布式计算框架
函数式编程
Mesos ??
HDFS 和 AWS S3 两种分布式存储环境

RDD(Resilient distributed datasets )弹性分布式数据集
Local模式和Mesos模式