带有Apache Spark的Lambda架构

本文探讨了Lambda架构,旨在通过批处理和流处理加速数据分析。以Apache Spark为例,介绍了如何利用Spark Core、SQL和Streaming处理实时数据,同时结合Twitter Stream展示了Lambda架构的应用。文章还讨论了Lambda架构的权衡以及其实现方法。
摘要由CSDN通过智能技术生成

目标
市场上的许多玩家已经建立了成功的MapReduce工作流程来每天处理以TB计的历史数据。但是谁愿意等待24小时才能获得最新的分析结果?这篇博文将向您介绍旨在利用批处理和流处理方法的Lambda架构。我们将利用Apache Spark(Core,SQL,Streaming),Apache Parquet,Twitter Stream等实时流数据快速访问历史数据。还包括清晰的代码和直观的演示!

Apache Hadoop:简史
Apache Hadoop的丰富历史始于2002年。Hadoop由Doug Cutting创建,Doug Cutting是Apache Lucene(一个被广泛使用的文本搜索库)的创建者。Hadoop起源于Apache Nutch,一个开源的网络搜索引擎,它本身就是Lucene项目的一部分。它在10年前成为一个独立的项目。

因此,大量客户实施了有效的基于Hadoop的M/R处理管道。现实生活中有一些很好的例子:

Oozie编排的工作流程每天运行并处理高达150 TB的数据以生成分析结果
bash管理的工作流程每天运行并处理高达8 TB的数据以生成分析结果
现在是2016年!
商业现实已经发生了变化,所以现在更快做出的决定更有价值。除此之外,技术也在不断发展。Kafka,Storm,Trident,Samza,Spark,Flink,Parquet,Avro,Cloud providers等都是工程师和企业广泛采用的流行语。

因此,现代基于Hadoop的M/R管道(使用Kafka,Avro和数据仓库等现代二进制格式,即Amazon Redshift,用于临时查询)可能采用以下方式:

这看起来相当不错,但它仍然是一种传统的批处理方式,具有所有已知的缺点,主要原因是客户端的数据在批处理花费大量时间完成之前的数据处理时,新的数据已经进入而导致数据过时。

Lambda架构
Nathan Marz针对通用的,可扩展的和容错的数据处理架构提出了术语Lambda Architecture。它是一种旨在通过利用批处理和流处理这两者的优势来处理大量数据的数据处理架构。

我强烈建议阅读Nathan Marz的书,因为它从提出者的角度提供了Lambda Architecture的完整表述。

图层
从宏观角度看,它的处理流程如下:

所有进入系统的数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值