• 实时计算storm流程架构总结


    hadoop一般用在离线的分析计算中,而storm区别于hadoop,用在实时的流式计算中,被广泛用来进行实时日志处理、实时统计、实时风控等场景,当然也可以用在对数据进行实时初步的加工,存储到分布式数据库中如HBase,便于后续的查询。

        面对的大批量的数据的实时计算,storm实现了一个可扩展的、低延迟、可靠性和容错的分布式计算平台。      

    1、对象介绍

               tuple:表示流中一个基本的处理单元,可以包括多个field,每个filed表示一个属性

               topology:一个拓扑是一个个计算节点组成的图,每个节点包换处理的逻辑,节点之间的连线表示数据流动的方向

              spout:表示一个流的源头,产生tuple

               bolt:处理输入流并产生多个输出流,可以做简单的数据转换计算,复杂的流处理一般需要经过多个bolt进行处理

               nimnus:主控节点,负责在集群中发布代码,分配工作给机器,并且监听状态

               supervisor:一个机器,工作节点,会监听分配给的工作,根据需要启动和关闭工作进程。

               woker:执行topology的工作进程,用于生成task

               task:每个spout和bolt都可以作为task在storm中运行,一个task对应一个线程

          storm拓扑topology的组成见下图,

         

    2、整体架构   

        

    客户端提交拓扑到nimbus。

    Nimbus针对该拓扑建立本地的目录根据topology的配置计算task,分配task,在zookeeper上建立assignments节点存储task和supervisor机器节点中woker的对应关系;

    在zookeeper上创建taskbeats节点来监控task的心跳;启动topology。

    Supervisor去zookeeper上获取分配的tasks,启动多个woker进行,每个woker生成task,一个task一个线程;根据topology信息初始化建立task之间的连接;Task和Task之间是通过zeroMQ管理的;后整个拓扑运行起来。

    上述只是介绍了storn的整个工作流程,当然storm在可靠性、容错性等方面考虑的比较全面,这后续再补充。

  • 相关阅读:
    DNNClassifier 深度神经网络 分类器
    浏览器对MP4视频 帧宽度 高度的兼容性
    UnicodeEncodeError:'latin-1' codec can't encode character
    文件夹下 文件计数
    the largest value you actually can transmit between the client and server is determined by the amount of available memory and the size of the communications buffers.
    the “identity” of an object
    广告特征 用户特征
    如果一个维度全覆盖,则有效维度应该对该维度全覆盖
    a high-level neural networks AP
    使用 LDA 挖掘的用户喜好主题
  • 原文地址:https://www.cnblogs.com/yepei/p/4752057.html
Copyright © 2020-2023  润新知