zoukankan      html  css  js  c++  java
  • 【Storm】编程模型

    在这里插入图片描述

    元祖(tuple)

    元组(Tuple),是消息传递的基本单元,是一个命名的值列表,元组中的字段可以是任何类型的对
    象。
    Storm使用元组作为其数据模型,元组支持所有的基本类型、字符串和字节数组作为字段值,只要实现
    类型的序列化接口就可以使用该类型的对象。元组本来应该是一个key-value的Map,但是由于各个组
    件间传递的元组的字段名称已经事先定义好,所以只要按序把元组填入各个value。即可,所以元组是
    一个value的List。

    流(Stream)

    流是Storm的核心抽象,是一个无界的元组系列。源源不断传递的元组就组成了流,在分布式环境中并
    行地进行创建和处理。

    Spout

    Spout是拓扑的数据流的来源,是一个拓扑中产生源数据流的组件。通常情况下,Spout会从外部数
    据源中读取数据,然后转换为拓扑内部的源数据。
    Spout可以是可靠的,也可以是不可靠的。如果Storm处理元组失败,可靠的Spout能够重新发射,
    而不可靠的Spout就尽快忘记发出的元组。
    Spout可以发出超过一个流。
    Spout的主要方法是nextTuple()。NextTuple()会发出一个新的Tuple到拓扑,如果没有新的元组发出,
    则简单返回。
    Spout的其他方法是ack()和fail()。当Storm检测到一个元组从Spout发出时,ack()和fail()会被调
    用,要么成功完成通过拓扑,要么未能完成。Ack()和fail()仅被可靠的Spout调用。IRichSpout是Spout必须实现的接口。

    Bolt

    在拓扑中所有处理都在Bolt中完成,Bolt是流的处理节点,从一个拓扑接收数据,然后执行进行处理的
    组件。Bolt可以完成过滤、业务处理、连接运算、连接与访问数据库等任何操作。
    Bolt是一个被动的角色,七接口中有一个execute()方法,在接收到消息后会调用此方法,用户可以在其
    中执行自己希望的操作。
    Bolt可以完成简单的流的转换,而完成复杂的流的转换通常需要多个步骤,因此需要多个Bolt。
    Bolt可以发出超过一个的流。

    Topology

    拓扑(Topology)是Storm中运行的一个实时应用程序,因为各个组件间的消息流动而形成逻辑上的拓
    扑结构。
    把实时应用程序的运行逻辑打成jar包后提交到Storm的拓扑(Topology)。Storm的拓扑类似于
    MapReduce的作业(Job)。其主要的区别是,MapReduce的作业最终会完成,而一个拓扑永远都在
    运行直到它被杀死。一个拓扑是一个图的Spout和Bolt的连接流分组。

  • 相关阅读:
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
    C语言I博客作业03
    C语言I博客作业02
    第一次作业
    C语言I博客作业09
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
  • 原文地址:https://www.cnblogs.com/BIG-BOSS-ZC/p/11807293.html
Copyright © 2011-2022 走看看