《Storm分布式实时计算模式》——第1章 分布式单词计数1.1 Storm topology的组成部分——stream、spout和bolt...

    xiaoxiao2023-07-30  137

    本节书摘来自华章计算机《Storm分布式实时计算模式》一书中的第1章,第1.1节,作者:(美)P. Taylor Goetz Brian O’Neill 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

    第1章 分布式单词计数

    本章将介绍使用Storm建立一个分布式流式计算应用时涉及的核心概念。我们通过建立一个简单的计数器程序实现这个目的。计数器将持续输入的一句句话作为输入流,统计其中单词出现的次数。单词计数这个例子浅显易懂,引入了多种数据结构、技术和设计模式。这些都是实现更复杂计算所必须的基础。本章首先概要介绍Storm的数据结构,然后实现一个完整Storm程序所需的各个组成部分。读完本章,读者将会了解Storm计算的基本结构、搭建开发环境的方法、Storm程序的开发和调试技术。本章包括以下主题:

    Strom topology的基本组成部分——stream、spout和bolt。搭建Storm开发环境。实现单词计数程序。并发和容错机制。并发计算任务以实现扩容。

    1.1 Storm topology的组成部分——stream、spout和bolt

    Storm分布式计算结构称为topology(拓扑),由stream(数据流),spout(数据流的生成者),bolt(运算)组成,如图1-1所示。Storm topology大致等同与Hadoop这类批处理运算中的job。然而,批处理运算中的job对运算的起始和终止有着明确定义,Storm topology会一直运行下去,除非进程被杀死或被取消部署。

    https://yqfile.alicdn.com/22038b0f9457d69f3739b84f8e706b23007317b1.png" > 1.1.1 stream Storm的核心数据结构是tuple。tuple是包含了一个或者多个键值对的列表,Stream是由无限制的tuple组成的序列。如果你对复杂事务处理(Complex Event Processing,CEP)比较熟悉,tuple就相当于CEP中的event。 1.1.2 spout spout代表了一个Storm topology的主要数据入口,充当采集器的角色,连接到数据源,将数据转化为一个个tuple,并将tuple作为数据流进行发射。 你会发现Storm为实现spout提供了非常简单的API。开发一个spout的主要工作就是编写代码从数据源或者API消费数据。数据源可能包括以下几种: Web或者移动程序的点击流Twitter或其他社交网络的消息传感器的输出应用程序的日志事件

    因为spout通常不会用来实现业务逻辑,所以在多个topology中常常可以复用。1.1.3 boltbolt可以理解为计算程序中的运算或者函数,将一个或者多个数据流作为输入,对数据实施运算后,选择性地输出一个或者多个数据流。bolt可以订阅多个由spout或者其他bolt发射的数据流,这样就可以建立复杂的数据流转换网络。像Spout API一样,bolt可以执行各式各样的处理功能,bolt的编程接口简单明了,bolt可以执行的典型功能包括:

    过滤tuple连接(join)和聚合操作(aggregation)计算数据库读写
    最新回复(0)