Storm入门教程:中文翻译版

需积分: 0 0 下载量 151 浏览量 更新于2024-07-20 收藏 1.6MB PDF 举报
"这是一本关于Storm入门的中文翻译书籍,由韩飞翻译,旨在帮助对Storm感兴趣的人士理解和学习这个分布式实时计算系统的基础知识。书中涵盖了Storm组件、操作模式(本地模式和远程模式)、构建拓扑结构、Spout和Bolt的使用、流分组策略以及如何创建实际的应用示例等重要内容。" 详细知识点: 1. **Storm组件**:Storm的核心组件包括Spout(数据源)和Bolt(处理组件)。Spout负责从外部数据源获取数据并以流的形式发布到Storm系统中,而Bolt则负责处理这些数据流,执行各种计算任务。 2. **Storm属性**: Storm允许用户配置各种属性,以调整系统的性能、容错性等特性,如worker进程数量、task数量、心跳间隔等。 3. **操作模式**:Storm有两种主要的操作模式,分别是**本地模式**(Local Mode)和**远程模式**(Remote Mode)。本地模式适合开发和测试,所有组件都在本地JVM中运行;远程模式则将拓扑部署到实际的Storm集群上进行分布式执行。 4. **HelloWorldStorm**:这是初学者首次接触Storm时通常会遇到的简单示例,用于演示如何创建一个基本的Topology,包括Spout和Bolt的定义及连接。 5. **流分组**:Storm支持多种流分组策略,如**Shuffle分组**(随机分发)、**Fields分组**(根据字段值分组)、**All分组**(所有副本都接收每条消息)、**Direct分组**(指定目标Task)、**Global分组**(所有Task接收同一消息)、**None分组**(不进行任何分组)。 6. **Spouts**:Spout是数据的来源,分为**可靠消息**(每个消息都被确认接收)和**不可靠消息**(无需确认)两种。可靠的Spout需要实现acked机制来确保数据的完整传输。 7. **Bolts**:Bolt是处理数据的组件,可以实现复杂的逻辑。Bolt的生命周期包括prepare、execute、cleanup等阶段,支持多流输出和多锚定,还可以通过IBasicBolt接口简化Ack机制。 8. **一个真实的示例**:书中通过一个Node.js Web应用与Storm集成的案例,展示了如何构建一个完整的Storm Topology,包括多个Spout和Bolt,如UsersNavigationSpout、GetCategoryBolt、UserHistoryBolt、ProductCategoriesCounterBolt和NewsNotifierBolt,以及如何与Redis服务器交互存储和获取信息。 9. **DRPC**:分布式直通请求计算(Distributed Remote Procedure Call,DRPC)允许用户发起一个计算请求,并等待一个结果返回。DRPC在Storm中提供了一种服务化的计算模型。 通过这本书,读者可以深入了解Storm的工作原理,学会如何设计和实现基于Storm的实时处理系统,以及如何在实际项目中应用这些知识。同时,书中的示例代码和讲解有助于读者快速上手实践。