01_流式计算基础_第1天(Storm是什么、Storm核心组件、Storm编程模型).docx

preview
需积分: 0 2 下载量 114 浏览量 更新于2020-03-22 收藏 346KB DOCX 举报
流式计算是一种处理持续不断的数据流的计算模式,与传统的离线计算形成鲜明对比。离线计算通常涉及批量数据处理,如通过Hadoop的MapReduce进行大规模数据的批处理,而流式计算则强调实时性,它能够对数据流进行连续分析并即时输出结果。 Apache Storm是一个开源的分布式实时计算系统,设计用于处理无界数据流,保证每个消息至少被处理一次(at-least-once语义)。Storm的核心特性包括低延迟、高可用性和可扩展性,确保数据不丢失,并提供了直观易用的编程模型。 Storm与Hadoop的主要区别在于处理方式和时间维度。Hadoop适合离线批量处理,数据存储在HDFS中,而Storm则是针对实时数据流的处理,数据在内存中流转。此外,Hadoop的编程模型基于JobTracker和TaskTracker,而Storm采用的是Topology概念,包含Nimbus、Supervisor、Worker、Spout和Bolt等组件。 Nimbus是Storm的作业调度器,类似于Hadoop的JobTracker,负责分配任务到各个节点。Supervisor是工作节点,接收Nimbus的任务,启动和管理Worker进程。每个Worker进程中可以运行多个Task,Task是实际执行计算的单元,分为Spout和Bolt两种。Spout负责从数据源拉取数据并生成数据流,而Bolt则执行具体的计算逻辑,如过滤、聚合等操作,并将结果输出到下一个阶段或存储系统。 在实际应用中,Storm被广泛用于实时日志分析、消息转换、数据管道传输等场景。例如,一淘的实时分析系统利用Storm实时处理用户行为日志,优化搜索引擎结果;携程的网站性能监控系统通过Storm实时分析性能指标,及时预警;阿里妈妈的用户画像构建依赖Storm实现用户兴趣的实时计算,以便精准推送广告。 流式计算的一般架构图通常会展示数据从源头经过一系列的处理阶段,最终到达结果输出的流程。这些阶段可能包括数据接入(如Flume)、数据存储(如Kafka)、实时计算(如Storm)以及结果缓存和持久化(如Redis、MySQL)。这样的架构设计能够保证数据从产生到处理的全程实时性,为业务决策提供快速响应的能力。 Storm是实现大数据实时处理的关键工具,它提供的强大实时计算能力和灵活的编程模型,使其成为互联网行业实时数据分析的首选框架。理解Storm的核心组件和编程模型,对于掌握流式计算原理和实践具有重要意义。
铲屎小仙女
  • 粉丝: 1
  • 资源: 21
上传资源 快速赚钱
voice
center-task 前往需求广场,查看用户热搜