目录
实时计算的基础知识
一.什么是实时计算
二.常用的实时计算框架
Spark Streaming的基础知识
一.Spark Streaming简介
实时计算的基础知识
一.什么是实时计算
在大数据技术中,有离线计算、批量计算、实时计算以及流式计算,其中,离线计算和实时计算指的是数据处理的延迟;批量计算和流式计算指的是数据处理的方式。
二.常用的实时计算框架
1. Apache Spark Streaming
Apache Spark Streming即Apache公司免费、开源的实时计算框架。它主要是把输入数据按时间进行切分,并对切分的数据块进行并行计算处理,处理的速度可以达到秒级别。Netflix公司通过Kafka和Spark Streming构建了实时引擎.对每天从各种数据源接收到的数十亿数据进行分析,从而完成电影的推荐功能。
2. Apache Storm
Apache Storm即Twitter公司免费、开源贡献给Apache的一个分布 式实时计算系统。它可以简单、高效、可靠地实时处理海量数据,处理数据的速度达到毫秒级别,并可将处理后的结果数据保存到持久化介质中(如数据库、HDFS)。阿里巴巴公司的JStorm,就是参考Apache Storm开发的实时计算框架,可以说是Strom的增强版本,在网络IO、线程模型、资源调度、可用性及稳定性上都做了极大的改进,供很多企业使用。
3. Apache Flink
Apache Flink 即Apache公司开源的计算框架。它不仅可以支持离线处理,还可以支持实时处理。由于离线处理和实时处理所提供的SLA(服务等级协议)是完全不相同的,所以离线处理一般需要支持低延迟的保证,而实时处理则需要支持高吞吐、高效率的处理。
4. Yahoo! S4(Simple Scalable Streaming System)
Yahoo! S4即Yahoo公司开源的实时计算平台。它是通用的、分布式的、可扩展的,并且还具有容错和可插拔能力,供开发者轻松地处理源源不断产生的数据。
Spark Streaming的基础知识
一.Spark Streaming简介
Spark Streming是构建在Spark上的实时计算框架,且是对Sparks Core API的一个扩展,它能够实现对流数据进行实时处理,并具有很好的可扩展性、高吞吐量和容错性。
Spark Streaming特点:
(1)易用性。
Spark Streaming支持Java、Python、Scala等编程语言,可以像编写离线程序一样编写实时计算的程序。
(2)容错性。
Spark Streaming在没有额外代码和配置的情况下,可以恢复丢失的数据。对于实时计算来说,容错性至关重要。首先要明确一下Spark中RDD的容错机制,即每一一个 RDD都是一个不可变的分布式可重算的数据集,它记录着确定性的操作继承关系(lineage),所以只要输人数据是可容错的,那么任意一个RDD的分区(Partition)出错或不可用,都可以使用原始输人数据经过转换操作重新计算得到。
(3)易整合性。
Spark Streaming 可以在Spark上运行,并且还允许重复使用相同的代码进行批处理。也就是说,实时处理可以与离线处理相结合,实现交互式的查询操作