首页 > 其他分享 >【Storm篇】--Storm基础概念

【Storm篇】--Storm基础概念

时间:2022-12-30 17:36:23浏览次数:59  
标签:批处理 Stream -- 概念 Bolt Storm 数据流 数据



=========================================================

声明:由于不同平台阅读格式不一致(尤其源码部分),所以获取更多阅读体验!!

个人网站地址:​http://www.lhworldblog.com/

==========================================================



一、前述

Storm是个实时的、分布式以及具备高容错的计算系统,Storm进程常驻内存 ,Storm数据不经过磁盘,在内存中处理。

二、相关概念

1.异步:

流式处理(异步)
客户端提交数据进行结算,并不会等待数据计算结果。

2.同步:

实时请求应答服务(同步)
客户端提交数据请求之后,立刻取得计算结果并返回给客户端。

3.Storm,Sparkstreaming,Mapreduce相关概念比较:

Storm:(实时处理)

专门为流式处理设计
数据传输模式更为简单,很多地方也更为高效
并不是不能做批处理,它也可以来做微批处理,来提高吞吐。

Spark Streaming:微批处理
将RDD做的很小来用小的批处理来接近流式处理
基于内存和DAG可以把处理任务做的很快。

MapReduce:

Storm:进程、线程常驻内存运行,数据不进入磁盘,数据通过网络传递。
MapReduce:为TB、PB级别数据设计的批处理计算框架。

4.Storm 计算模型

Topology – DAG有向无环图的实现(拓扑图)

对于Storm实时计算逻辑的封装
即,由一系列通过数据流相互关联的Spout、Bolt所组成的拓扑结构
生命周期:此拓扑只要启动就会一直在集群中运行,直到手动将其kill,否则不会终止
    (区别于MapReduce当中的Job,MR当中的Job在计算执行完成就会终止)。

Tuple – 元组
Stream中最小数据组成单元

Stream – 数据流
从Spout中源源不断传递数据给Bolt、以及上一个Bolt传递数据给下一个Bolt,所形成的这些数据通道即叫做Stream
Stream声明时需给其指定一个Id(默认为Default)
实际开发场景中,多使用单一数据流,此时不需要单独指定StreamId

Spout – 数据源
拓扑中数据流的来源。一般会从指定外部的数据源读取元组(Tuple)发送到拓扑(Topology)中
一个Spout可以发送多个数据流(Stream)
可先通过OutputFieldsDeclarer中的declare方法声明定义的不同数据流,发送数据时通过SpoutOutputCollector中的emit方法指定数据流Id(streamId)参数将数据发送出去
Spout中最核心的方法是nextTuple,该方法会被Storm线程不断调用、主动从数据源拉取数据,再通过emit方法将数据生成元组(Tuple)发送给之后的Bolt计算

Bolt – 数据流处理组件
拓扑中数据处理均有Bolt完成。对于简单的任务或者数据流转换,单个Bolt可以简单实现;更加复杂场景往往需要多个Bolt分多个步骤完成
一个Bolt可以发送多个数据流(Stream)
可先通过OutputFieldsDeclarer中的declare方法声明定义的不同数据流,发送数据时通过SpoutOutputCollector中的emit方法指定数据流Id(streamId)参数将数据发送出去
Bolt中最核心的方法是execute方法,该方法负责接收到一个元组(Tuple)数据、真正实现核心的业务逻辑

 

标签:批处理,Stream,--,概念,Bolt,Storm,数据流,数据
From: https://blog.51cto.com/u_11936913/5980852

相关文章

  • 数组——多维数组、Arrays类讲解
    数组——多维数组、Arrays类讲解多维数组多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。二维数组inta[][]=newi......
  • 手写防抖
    手写一个防抖防抖和节流都是依托定时器来完成的lettimer=nullinput1.addEventLister('keyup',function(){if(timer){clearTimeout(timer)}timer=......
  • 【机器学习】--线性回归中L1正则和L2正则
    =========================================================声明:由于不同平台阅读格式不一致(尤其源码部分),所以获取更多阅读体验!!个人网站地址:​​http://www.lhworldblog.......
  • java 中的char , utf16 utf8
    在设计Java时决定采用16位的Unicode字符集....(中间省略)...现在16位的Char类型已经不能满足描述所有Unicode字符的需要了。Java为了解决这个问题的方法是使用码点和代码单......
  • Hive篇---Hive与Hbase整合
    =========================================================声明:由于不同平台阅读格式不一致(尤其源码部分),所以获取更多阅读体验!!个人网站地址:​​http://www.lhworldblog.......
  • 注解
    注解:或者叫注释,编译后生成xxx.class文件英文单词:Annotation,是一种引用数据类型注解可以出现在类上,属性上,方法上,变量上等... 元注解:用来标注”注解类型“的”注解“,......
  • 【Sqoop篇】----Sqoop从搭建到应用案例
    =========================================================声明:由于不同平台阅读格式不一致(尤其源码部分),所以获取更多阅读体验!!个人网站地址:​​http://www.lhworldblog.......
  • 基于AI边缘智能网关的工业质检应用
    成品质量检验是工业生产最后必不可少的环节,随着我国工业化的蓬勃发展,工业产品日益迈向高端化、精密化,对于工业产品的质量检验要求和投入成本也在不断提高,产品质检涉及到比......
  • 【机器学习】--Kmeans从初识到应用
    一.前述Kmeans算法一般在数据分析前期使用,选取适当的k,将数据分类后,然后分类研究不同聚类下数据的特点。Kmeans算法是一种无监督的算法。二.概念及原理Kmeans原理:随机选取k......
  • 大白话5分钟带你走进人工智能-第十四节过拟合解决手段L1和L2正则
                                                                    第十四节过拟合解决手段L1和L2正......