没有合适的资源?快使用搜索试试~ 我知道了~
首页Lambda架构:实时大数据处理的基石与原则
"用于实时大数据处理的Lambda架构是一种创新的数据处理框架,由Twitter前员工Nathan Marz在开发Storm时提出。不同于AWS的Lambda服务,Lambda架构关注的是实现高容错性、低延迟和可扩展性的实时大数据系统。该架构的设计灵感源于Marz多年在分布式大数据领域的实践,旨在确保系统即使面对机器故障和人为错误也能保持稳健运行。 Lambda架构的核心在于它结合了离线计算和实时计算,通过不可变性(数据一旦写入就不可更改)、读写分离以及复杂性隔离等原则,使得系统能够有效地集成各种大数据组件,如Hadoop、Kafka、Storm、Spark和Hbase。这种设计允许系统在处理大量数据的同时,确保查询的实时性,并能在数据增长和负载增加时轻松扩展。 在大数据系统的关键特性上,Marz强调了以下几个方面: 1. 容错性和鲁棒性:Lambda架构着重于处理机器故障和人为错误,确保系统能在出现错误时仍能正常运行。这包括对人为错误的容错处理,因为分布式系统的复杂性意味着错误不可避免。 2. 低延迟读写:许多应用场景对数据的实时读取和更新有严格的要求,Lambda架构为此提供了低延迟的支持,确保对更新和查询的响应时间极短。 3. 横向可扩展性:随着数据量和负载的增长,Lambda架构通过水平扩展(scale out)机制,即增加更多的计算资源,保持系统的性能稳定,满足线性可扩展的需求。 通过Lambda架构,开发者可以构建出既能应对实时数据处理挑战又能确保系统稳定性与灵活性的解决方案。对于对AWS Lambda感兴趣的人,可以参考其他相关文章或直接访问AWS官方文档以获取更多信息。"
资源详情
资源推荐
用于实时大数据处理的用于实时大数据处理的Lambda架构架构
编辑推荐编辑推荐:
本文介绍了 Lambda 架构的基本概念,Lambda 架构通过对数据和查询的本质认
识,融合了不可变性(Immunability),读写分离和复杂性隔离等一系列架构原
则。
本文来自品高云,由火龙果软件Linda编辑、推荐。
这里要讲的 Lambda 是一个实时大数据处理框架,而不是 AWS 的同名服务,但是其中所强调的容错性、横向扩容、易于维护
等通用性质的概念却是二者都具备的,对于 AWS Lambda 感兴趣的可以看博客的另外一篇文章《Serverless(无服务器) 架构
入门 by Lambda》或访问 AWS 官方了解。
1.Lambda 架构背景介绍
Lambda 架构是由 Storm 的作者 Nathan Marz 提出的一个实时大数据处理框架。Marz 在 Twitter 工作期间开发了著名的实时
大数据处理框架 Storm,Lambda 架构是其根据多年进行分布式大数据系统的经验总结提炼而成。
Lambda 架构的目标是设计出一个能满足实时大数据系统关键特性的架构,包括有:高容错、低延时和可扩展等。Lambda 架
构整合离线计算和实时计算,融合不可变性(Immunability),读写分离和复杂性隔离等一系列架构原则,可集成
Hadoop,Kafka,Storm,Spark,Hbase 等各类大数据组件。
2. 大数据系统的关键特性
Marz 认为大数据系统应具有以下的关键特性:
Robust and fault-tolerant(容错性和鲁棒性):对大规模分布式系统来说,机器是不可靠的,可能会当机,但是系统需要是健
壮、行为正确的,即使是遇到机器错误。除了机器错误,人更可能会犯错误。在软件开发中难免会有一些 Bug,系统必须对有
Bug 的程序写入的错误数据有足够的适应能力,所以比机器容错性更加重要的容错性是人为操作容错性。对于大规模的分布式
系统来说,人和机器的错误每天都可能会发生,如何应对人和机器的错误,让系统能够从错误中快速恢复尤其重要。
Low latency reads and updates(低延时):很多应用对于读和写操作的延时要求非常高,要求对更新和查询的响应是低延时
的。
Scalable(横向扩容):当数据量/负载增大时,可扩展性的系统通过增加更多的机器资源来维持性能。也就是常说的系统需
要线性可扩展,通常采用 scale out(通过增加机器的个数)而不是 scale up(通过增强机器的性能)。
General(通用性):系统需要能够适应广泛的应用,包括金融领域、社交网络、电子商务数据分析等。
Extensible(可扩展):需要增加新功能、新特性时,可扩展的系统能以最小的开发代价来增加新功能。
Allows ad hoc queries(方便查询):数据中蕴含有价值,需要能够方便、快速的查询出所需要的数据。
Minimal maintenance(易于维护):系统要想做到易于维护,其关键是控制其复杂性,越是复杂的系统越容易出错、越难维
护。
Debuggable(易调试):当出问题时,系统需要有足够的信息来调试错误,找到问题的根源。其关键是能够追根溯源到每个
数据生成点。
3. 数据系统的本质
为了设计出能满足前述的大数据关键特性的系统,我们需要对数据系统有本质性的理解。我们可将数据系统简化为:
数据系统 = 数据 + 查询
从而从数据和查询两方面来认识大数据系统的本质。
3.1. 数据的本质
3.1.1. 数据的特性:When & What
我们先从 “数据” 的特性谈起。数据是一个不可分割的单位,数据有两个关键的性质:When 和 What。
When 是指数据是与时间相关的,数据一定是在某个时间点产生的。比如 Log 日志就隐含着按照时间先后顺序产生的数
据,Log 前面的日志数据一定先于 Log 后面的日志数据产生;消息系统中消息的接受者一定是在消息的发送者发送消息后接
收到的消息。相比于数据库,数据库中表的记录就丢失了时间先后顺序的信息,中间某条记录可能是在最后一条记录产生后发
生更新的。对于分布式系统,数据的时间特性尤其重要。分布式系统中数据可能产生于不同的系统中,时间决定了数据发生的
全局先后顺序。比如对一个值做算术运算,先+2,后*3,与先*3,后+2,得到的结果完全不同。数据的时间性质决定了数据
的全局发生先后,也就决定了数据的结果。
下载后可阅读完整内容,剩余5页未读,立即下载
weixin_38722164
- 粉丝: 2
- 资源: 912
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 十种常见电感线圈电感量计算公式详解
- 军用车辆:CAN总线的集成与优势
- CAN总线在汽车智能换档系统中的作用与实现
- CAN总线数据超载问题及解决策略
- 汽车车身系统CAN总线设计与应用
- SAP企业需求深度剖析:财务会计与供应链的关键流程与改进策略
- CAN总线在发动机电控系统中的通信设计实践
- Spring与iBATIS整合:快速开发与比较分析
- CAN总线驱动的整车管理系统硬件设计详解
- CAN总线通讯智能节点设计与实现
- DSP实现电动汽车CAN总线通讯技术
- CAN协议网关设计:自动位速率检测与互连
- Xcode免证书调试iPad程序开发指南
- 分布式数据库查询优化算法探讨
- Win7安装VC++6.0完全指南:解决兼容性与Office冲突
- MFC实现学生信息管理系统:登录与数据库操作
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功