一、前述

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)数据、真正实现核心的业务逻辑

转载于:https://www.cnblogs.com/LHWorldBlog/p/8352845.html

【Storm篇】--Storm基础概念相关推荐

  1. Nebula Graph学习篇1_基础概念、初步使用、整合SpringBoot使用

    目录 一.基础概念 图数据库的概念 适用场景 数据模型 路径 点的VID 架构 二.初步使用 Windows安装Nebula-Graph服务 Nebula Console 连接 Nebula-Grap ...

  2. EXCEL篇—函数基础概念【1】

    今天给大家分享的是在EXCEL中使用频率最高的一个模块-函数.可能有的同学会说,一般在EXCEL中函数都是拿来计算的,跟数据分析有什么关系啊?大家别忘了,在数据分析中最重要的一环不是分析数据,而是在得 ...

  3. EXCEL篇—函数基础概念【2】

    前一篇文章跟大家分享了什么是公式以及如何插入函数.函数的结构是什么.有的同学可能会说,这个是不是也太简单了.但是大家要知道,学习是一个循序渐进的过程,谁也不能一口吃成一个大胖子.如果有的同学已经掌握了 ...

  4. JS--我发现,原来你是这样的JS(三)(基础概念--灵魂篇)

    一.介绍 这是红宝书(JavaScript高级程序设计 3版)的读书笔记第三篇(灵魂篇介绍),有着剩下的第三章的知识内容. 红宝书这本书可以说是难啃的,要看完不容易,挺厚的,要看懂更不容易,要熟练js ...

  5. 【软件测试】基础-概念篇

    软件测试基础-概念篇 记录 - 慕课网 imooc 软件测试基础-概念篇 简介:系统介绍什么是软件测试,从软件测试的定义.原则以及测试阶段.测试模式.测试手段和测试类型分别详细说明软件测试中的各种测试 ...

  6. C++面试题(一)——基础概念篇

    https://blog.csdn.net/worldwindjp/article/details/18909079 C++面试题--基础概念篇 唐璐 http://blog.csdn.net/wor ...

  7. 谷粒商城项目篇1_分布式基础篇_分布式基础概念、环境搭建、创建项目

    写在前面 为丰富项目经验,特此学习B站开源视频<全网最强电商教程<谷粒商城>对标阿里P6/P7,40-60万年薪>希望通过此学习能巩固所学,将技术栈串接起来. 此项目三个阶段 ...

  8. 模型推理部署——基础概念篇

    模型推理部署--基础概念篇 训练(training)vs推理(inference) 训练是通过从已有的数据中学习到某种能力,而推理是简化并使用该能力,使其能快速.高效地对未知的数据进行操作,以获得预期 ...

  9. 【云原生|K8s系列第1篇】:K8s的基础概念、组件架构及实战安装

    云原生|K8s系列第1篇目录 1.先从K8s不是什么讲起 2.K8s是什么及核心基础概念 2.1 Container容器 2.2 Pod 2.3 Node 2.4 Label 2.5 Annotati ...

  10. 自己动手实现蓝牙MESH应用系列 | 第一篇:蓝牙MESH基础概念介绍

    文章目录 1. 前言 2. 概述 2.1. 蓝牙风格(Flavors) 2.2. mesh网络的动机 2.3. mesh网络中的消息传输方式 2.3.1. 以消息为中心的通信 - 发布/订阅(publ ...

最新文章

  1. 2020年春季学习信号与系统课程作业参考答案-第十一次作业
  2. DWM1000 长距离模块讨论
  3. vc设置窗口在另一个窗口前面_日常办公如何设置IE
  4. array initization in matlab zeros(1000)
  5. iOS进阶 - iOS如何监控崩溃
  6. java字符类的英文表示_java 字符串截取类 区分中文、英文、数字、标点符号
  7. USB 摄像头成熟方案介绍
  8. BeetleX自定义http/websocket压测用例视频
  9. mysql重复数据处理_MySQL 处理重复数据
  10. Codeforces Round #198 (Div. 2)A,B题解
  11. python 插入查找
  12. 13分钟搭建动易PHP论坛(OS:Linux)
  13. 换电脑了,呵呵双核的 ADM 64 Dual Core 3600+
  14. [网络应用]11款来自 deviantART 的 foobar 2000 皮肤
  15. MATLAB2017B 下载
  16. linux bond服务是什么,linux 查看bond
  17. unity中单位是米还是厘米_Unity3D 单位
  18. HTML一个简单大一的网页作业
  19. 电视机丢失卫星信号出现花屏——Shader
  20. Java for循环-水仙花数

热门文章

  1. DPDK之makefile编译选项修改和gdb调试(三)
  2. leetcode算法题--整数拆分
  3. 沙溪理工学校计算机,学雷锋树新风——沙溪理工学校计算机部开展学雷锋活动...
  4. 匹配月份_5月份轿车销量榜单出炉 雅阁热销18634辆
  5. call_user_func
  6. Android Editext监听光标位置
  7. 几点易被忽视的网络软故障排查
  8. 详细介绍Oracle DBA工作职责
  9. [转]DB2常用命令大全
  10. HTML在线编辑器控件