大数据处理系统架构特征

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)

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

相关推荐
星哥说事10 分钟前
SDN 与 NFV:软件定义网络(SDN)与网络功能虚拟化(NFV)架构
网络·架构
shmexon11 分钟前
信息的空中之旅:从AM调制原理到工业级5G+Wi-Fi6的技术突破
网络·5g·信息与通信
扁豆的主人22 分钟前
RPC服务
网络·网络协议·rpc
一尘之中32 分钟前
从比特币的24小时交易到去中心化股市:一场金融交易的范式革命
网络·架构·ai写作
腾讯云开发者35 分钟前
太古可口可乐的数智跃迁:用 AI 重构快消渠道的“最后一公里”
大数据
GIS数据转换器1 小时前
2025无人机在农业生态中的应用实践
大数据·网络·人工智能·安全·无人机
武子康1 小时前
大数据-132 Flink SQL 实战入门 | 3 分钟跑通 Table API + SQL 含 toChangelogStream 新写法
大数据·后端·flink
Lion Long1 小时前
PB级数据洪流下的抉择:从大数据架构师视角,深度解析时序数据库选型与性能优化(聚焦Apache IoTDB)
大数据·性能优化·apache·时序数据库·iotdb
cozil2 小时前
记录磊科B39路由器跨域组网遇到的问题
网络·智能路由器·跨域组网
Lx3522 小时前
Flink背压机制:原理与调优策略
大数据