大数据处理系统架构特征

Storm之父Nathan Marz在《大数据系统构建:可扩展实时数据系统构建原理与最佳实践》一书中,提出了他认为大数据系统应该具有的属性

1.鲁棒性和容错性(Robust and Fault-tolerant)

对大规模分布式系统来说,机器是不可靠的,可能会宕机,但是系统需要是健壮、行为正确的,即使是遇到机器错误。除了机器错误,人更可能会犯错误。在软件开发中难免会有一些Bug,系统必须对有Bug的程序写入的错误数据有足够的适应能力,所以比机器容错性更加重要的容错性是人为操作容错性。对于大规模的分布式系统来说,人和机器的错误每天都可能会发生,如何应对人和机器的错误,让系统能够从错误中快速恢复尤其重要。

2.低延迟读取和更新能力(Low Latency Reads and Updates)

许多应用程序要求数据系统拥有几毫秒到几百毫秒的低延迟读取和更新能力。有的应用程序允许几个小时的延迟更新,但是只要有低延迟读取与更新的需求,系统就应该在保证鲁棒性的前提下实现。

3.横向扩容(Scalable)

当数据量或负荷增大时,可扩展性的系统通过增加更多的机器资源来维持性能。也就是常说的系统需要线性可扩展,通常采用scale out(通过增加机器的个数)而不是scale up(通过增强机器的性能)。

4.通用性(General)

系统需要支持绝大多数应用程序,包括金融领域、社交网络、电子商务数据分析等。

5.延展性(Extensible)

在新的功能需求出现时,系统需要能够将新功能添加到系统中。同时,系统的大规模迁移能力是设计者需要考虑的因素之一,这也是可延展性的体现。

6.即席查询能力(Allows Ad Hoc Queres)

用户在使用系统时,应当可以按照自己的要求进行即席查询(Ad Hoc)。这使用户可以通过系统多样化数据处理,产生更高的应用价值。

7.最少维护能力(Minimal Maintenance)

系统需要在大多数时间下保持平稳运行。使用机制简单的组件和算法让系统底层拥有低复杂度,是减少系统维护次数的重要途径。Marz认为大数据系统设计不能再基于传统架构的增量更新设计,要通过减少复杂性以减少发生错误的几率、避免繁重操作。

8.可调试性(Debuggable)

系统在运行中产生的每一个值,需要有可用途径进行追踪,并且要能够明确这些值是如何产生的。

相关推荐
财经资讯数据_灵砚智能16 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年5月11日
大数据·人工智能·python·信息可视化·自然语言处理
wangl_9217 小时前
Modbus RTU 与 Modbus TCP 深入指南-决策树与选型建议
网络·网络协议·tcp/ip·tcp·modbus·rtu
2501_9344402317 小时前
只做中外合作办学,并且把它做深、做精
大数据·人工智能
国强_dev17 小时前
如何提升canal吞吐量
java·大数据·python
xhbh66617 小时前
Windows自带端口转发完全教程:netsh命令详解与实战案例
网络·端口转发·流量端口转发·ssh端口转发·端口转发工具
暴力求解17 小时前
Linux---网络基础概念
linux·运维·服务器·网络·操作系统
Simon5231417 小时前
常见404 500错误解析
网络·学习·servlet·html5
pengyi87101517 小时前
共享IP全面优缺点解析,适合什么人群使用?
linux·运维·服务器·网络·tcp/ip
派拉软件17 小时前
AI 网关:重塑企业级大模型服务治理架构
大数据·人工智能·架构
Lucky me.18 小时前
Cloud code完整命令手册
大数据·elasticsearch·搜索引擎