天罡:阿里巴巴的实时流计算框架

4星 · 超过85%的资源 需积分: 10 43 下载量 25 浏览量 更新于2024-07-21 收藏 1.95MB PDF 举报
"基于storm的实时计算架构.pdf" 在大数据领域,实时计算已经成为一种不可或缺的技术,尤其是在快速响应和决策支持方面。Storm作为一款流行的开源实时计算框架,与传统的Hadoop相比,它专门用于处理持续的数据流,而非批量数据。Storm的设计目标是提供低延迟、高吞吐量的实时处理能力,适用于实时日志处理、实时统计、实时风控等多种实时应用场景。 1.1 业务背景 随着大数据的爆炸性增长,业务需求变得越来越多样化和快速变化。例如,社交网络(SNS)、移动互联网的发展以及用户体验的个性化和实时化,都推动了实时计算的需求。离线计算虽然在大数据分析中占据重要地位,但往往无法满足实时响应的业务需求。 1.2 离线计算 vs. 流计算 离线计算通常采用批处理的方式,适合处理大规模的历史数据,但延迟较高。而流计算则侧重于处理连续不断的数据流,强调低延迟和事件驱动,能够及时响应数据变化。 2.2 Storm介绍 Storm是一个分布式、容错的实时计算系统,其0.74版本提供了诸多特性,如广泛的应用场景、高可伸缩性、无数据丢失保障、异常健壮性和良好的容错性。然而,Storm也存在一些挑战,如编程门槛较高、缺乏内置的持久化存储、无内置消息接入模块、Storm UI功能简单、Bolt在不同拓扑间的复用困难、Nimbus的单点故障以及不支持动态部署的Topology。 2.3 Storm架构 Storm的核心组件包括Nimbus、Supervisor、Worker、Task和Zookeeper。Nimbus负责任务调度,Supervisor管理节点上的Worker进程,Worker运行Tasks来处理数据流。Zookeeper用于协调集群状态,确保高可用性。 3.1 阿里巴巴业务需求特征 阿里巴巴的实时计算需求涵盖了多种场景,包括监控业务关键指标、实时报警、分钟级延迟的统计、秒级延迟的实时推荐以及复杂的实时数据信息服务。这些需求对延迟、精度和计算复杂性都有不同的要求。 3.2 天罡-实时流计算应用开发框架 为了应对这些挑战,阿里巴巴推出了天罡,一个实时流计算应用开发框架。天罡旨在简化实时计算任务的开发,通过屏蔽底层系统的复杂性,提供消息源接入的配置方式,以及类SQL工具来降低开发难度。此外,天罡还提供完整的任务管理和监控功能,以支持各种实时数据应用的业务闭环运营。 总结来说,Storm作为实时计算的基础框架,结合天罡这样的应用开发框架,能够有效地满足企业在实时数据处理中的复杂需求,实现高效、灵活的实时数据分析和应用。通过不断优化和扩展,这些技术将继续推动实时计算领域的进步,为企业的决策支持和业务创新提供强大动力。