温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Storm的设计思想是什么

发布时间:2021-12-23 14:38:41 来源:亿速云 阅读:166 作者:iii 栏目:大数据

这篇文章主要介绍“Storm的设计思想是什么”,在日常操作中,相信很多人在Storm的设计思想是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Storm的设计思想是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

实时计算概述

有别于传统的离线批处理操作(对很多数据的集合进行的操作),实时处理,说白就是针对一条一条的数据/记录进行操作,所有的这些操作进行一个汇总(截止到目前为止的所有的统计总和)。

实时计算与离线计算比较

Bounded:有界
    离线计算面临的操作数据都是有界限的,无论是1G、1T、1P、1EB、1NB
    数据的有界必然会导致计算的有界
UnBounded:×××
    实时计算面临的操作数据是源源不断的向水流一样,是没有界限的,
    数据的×××必然导致计算的×××

来自Flink官网的说明:

First, 2 types of datasets
    Unbounded: Infinite datasets that are appended to continuously
    Bounded: Finite, unchanging datasets

Second, 2 types of execution models
    Streaming: Processing that executes continuously as long as data is being produced
    Batch: Processing that is executed and runs to completeness in a finite amount of 
           time, releasing computing resources when finished

大数据处理的6大问题

3大计算中心
    离线批处理
    准实时流计算中心
    实时流计算
3大计算引擎
    用户交互式计算引擎:SQL/ES
    图计算引擎
    机器学习计算引擎

Storm简介

ApacheStorm是Twitter开源的一个类似于Hadoop的实时数据处理框架,它原来是由BackType开发,后BackType被Twitter收购,将Storm作为Twitter的实时数据分析系统。

Storm能实现高频数据和大规模数据的实时处理。

官网资料显示storm的一个节点1秒钟能够处理100万个100字节的消息(IntelE5645@2.4Ghz的CPU,24GB的内存)。(即单节点每秒大概处理95MB左右数据)

官网:<http://storm.apache.org>

Storm和Hadoop比较

  • 数据来源

    HADOOP处理的是HDFS上TB级别的数据(历史数据),STORM是处理的是实时新增的某一笔数据(实时数据);

  • 处理过程

    HADOOP是分MAP阶段到REDUCE阶段,STORM是由用户定义处理流程,流程中可以包含多个步骤,每个步骤可以是数据源(SPOUT)或处理逻辑(BOLT);

  • 是否结束

    HADOOP最后是要结束的,STORM是没有结束状态,到最后一步时,就停在那,直到有新数据进入时再从头开始;

  • 处理速度

    HADOOP是以处理HDFS上TB级别数据为目的,处理速度慢,STORM是只要处理新增的某一笔数据即可,可以做到很快;

  • 适用场景

    HADOOP是在要处理批量数据时用的,不讲究时效性,STORM是要处理某一新增数据时用的,要讲时效性。

Storm的设计思想

Storm是对流Stream的抽象,流是一个不间断的×××的连续tuple,注意Storm在建模事件流时,把流中的事件抽象为tuple即元组。

Storm将流中元素抽象为Tuple,一个tuple就是一个值列表——valuelist,list中的每个value都有一个name,并且该value可以是基本类型,字符类型,字节数组等,当然也可以是其他可序列化的类型。

Storm认为每个stream都有一个stream源,也就是原始元组的源头,所以它将这个源头称为Spout。

有了源头即spout也就是有了stream,那么该如何处理stream内的tuple呢。将流的状态转换称为Bolt,bolt可以消费任意数量的输入流,只要将流方向导向该bolt,同时它也可以发送新的流给其他bolt使用,这样一来,只要打开特定的spout(管口)再将spout中流出的tuple导向特定的bolt,又bolt对导入的流做处理后再导向其他bolt或者目的地。

Storm的设计思想是什么

以上处理过程统称为Topology即拓扑。拓扑是storm中最高层次的一个抽象概念,它可以被提交到storm集群执行,一个拓扑就是一个流转换图,图中每个节点是一个spout或者bolt,图中的边表示bolt订阅了哪些流,当spout或者bolt发送元组到流时,它就发送元组到每个订阅了该流的bolt(这就意味着不需要我们手工拉管道,只要预先订阅,spout就会将流发到适当bolt上)。

拓扑的每个节点都要说明它所发出的元组的字段的name,其他节点只需要订阅该name就可以接收处理。

到此,关于“Storm的设计思想是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI