jstorm基本概念

article/2025/8/30 14:26:15

基本概念

longdafeng edited this page on 29 Sep ·  4 revisions

 Pages 69

  • 0.7.1 changelist
  • 0.9.0 change list
  • 0.9.0 性能测试
  • 0.9.1_change_list
  • 0.9.2_change_list
  • 0.9.3_change_list
  • Ack 机制
  • Acking Framework Implementation
  • Application examples
  • Basic conception
  • Build JStorm
  • Description & Scenarios
  • Difference between Storm and JStorm
  • Downloads
  • EagleEye TLog
Clone this wiki locally

在JStorm中有对于流stream的抽象,流是一个不间断的无界的连续tuple,注意JStorm在建模事件流时,把流中的事件抽象为tuple即元组,后面会解释JStorm中如何使用tuple。

STREAM

Spout/Bolt

JStorm认为每个stream都有一个stream源,也就是原始元组的源头,所以它将这个源头抽象为spout,spout可能是连接消息中间件(如MetaQ, Kafka, TBNotify等),并不断发出消息,也可能是从某个队列中不断读取队列元素并装配为tuple发射。

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

我们可以认为spout就是一个一个的水龙头,并且每个水龙头里流出的水是不同的,我们想拿到哪种水就拧开哪个水龙头,然后使用管道将水龙头的水导向到一个水处理器(bolt),水处理器处理后再使用管道导向另一个处理器或者存入容器中。

spoutbolt

Topology

topology

对应上文的介绍,我们可以很容易的理解这幅图,这是一张有向无环图,JStorm将这个图抽象为Topology即拓扑(的确,拓扑结构是有向无环的),拓扑是Jstorm中最高层次的一个抽象概念,它可以被提交到Jstorm集群执行,一个拓扑就是一个数据流转换图,图中每个节点是一个spout或者bolt,图中的边表示bolt订阅了哪些流,当spout或者bolt发送元组到流时,它就发送元组到每个订阅了该流的bolt(这就意味着不需要我们手工拉管道,只要预先订阅,spout就会将流发到适当bolt上)。 插个位置说下Jstorm的topology实现,为了做实时计算,我们需要设计一个拓扑图,并实现其中的Bolt处理细节,JStorm中拓扑定义仅仅是一些Thrift结构体,这样一来我们就可以使用其他语言来创建和提交拓扑。

Tuple

JStorm将流中数据抽象为tuple,一个tuple就是一个值列表value list,list中的每个value都有一个name,并且该value可以是基本类型,字符类型,字节数组等,当然也可以是其他可序列化的类型。拓扑的每个节点都要说明它所发射出的元组的字段的name,其他节点只需要订阅该name就可以接收处理。

Worker/Task

Worker和Task是JStorm中任务的执行单元, 一个worker表示一个进程,一个task表示一个线程, 一个worker可以运行多个task。

资源slot

在JStorm中,资源类型分为4种, CPU, Memory,Disk, Port, 不再局限于Storm的port。 即一个supervisor可以提供多少个CPU slot,多少个Memory slot, 多少个Disk slot, 多少个Port slot

  • 一个worker就消耗一个Port slot, 默认一个task会消耗一个CPU slot和一个Memory slot
  • 当task执行任务较重时,可以申请更多的CPU slot,
  • 当task需要更多内存时,可以申请更多的内存slot,

  • 当task 磁盘读写较多时,可以申请磁盘slot,则该磁盘slot给该task独享
https://github.com/alibaba/jstorm/wiki/%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5


http://chatgpt.dhexx.cn/article/w1jZDl1V.shtml

相关文章

ReactJS入门之Model层

目录 一:分层 二:使用DVA进行数据分层管理 三:在model中请求数据 四:mock数据 一:分层 上图中,左侧是服务端代码的层次结构,由 Controller 、 Service 、 Data Access 三层组成服务端系统…

初识Jstorm 多个bolt应用

最近接到任务说要使用jstorm处理业务,之前没接触过,只能硬着头皮来,接下来谈谈我这两天的收获 1,怎么了解jstorm,这个答案没什么固定的,但是我个人比较喜欢去看官方的文档,如果官方的文档实在找…

大数据(十五) - JStorm

JStorm 是一个分布式实时计算引擎,是淘宝开源的 随着Storm 的规模越来越大,发现原有的很多Storm设计,只能适合小集群中运行,当集群规模超过100台时,均会出现一些或这或那的问题。JStorm 比Storm更稳定,更强…

初识JavaScript---(1)

初识JavaScript———(1)!!! 一、初识JavaScript 1.什么是JavaScript? JavaScript是运行在浏览器上的脚本语言,简称JS。JavaScript程序不需要我们程序员手动编译,编写完源代码之后…

【JavaScript高级进阶】构造函数和原型,学会prototype

目录 前言 1.构造函数和原型 1.1使用prototype解决内存浪费的问题 1.2constructor构造函数构造器构造函数 2.原型链 2.1js中成员查找规则 2.2原型对象this指向 2.3扩展内置对象 3.call作用 4.继承 4.1利用原型对象继承 写在最后 前言 哈喽哈喽大家好,因为…

Jstorm 基本概念

本质 基于消息的流水线处理模型是一套类似MapReduce一样的编程模型内核是一套调度系统 适合的业务 高并发的计算任务数据流之间相互无依赖 编程模型 Topology:即一个数据流的拓扑结构,包含多个Spout和BoltSpout:从外部获取数据&#xff…

JStorm和Storm比较

1、What——JStorm是什么?  概述: JStorm 是一个分布式实时计算引擎,类似Hadoop MapReduce的系统, 用户按照规定的编程规范实现一个任务,然后将这个任务递交给JStorm系统,Jstorm将这个任务跑起来&#xf…

JStorm Storm 上手demo

折线之间的内容整理自: http://blog.csdn.net/suifeng3051/article/details/38369689 -------------------------------------------------------------------------------------------------------------------------------------------- 在全面介绍Storm之前&…

PyTorch从零开始实现Transformer

文章目录 自注意力Transformer块编码器解码器块解码器整个Transformer参考来源全部代码(可直接运行) 自注意力 计算公式 代码实现 class SelfAttention(nn.Module):def __init__(self, embed_size, heads):super(SelfAttention, self).__init__()self.e…

jstorm storm 入门demo

jstorm和storm比较 jstorm 是阿里巴巴开源的基于storm采用Java重写的一套分布式实时流计算框架,使用简单,特点如下: 1,开发非常迅速: 接口简单,容易上手,只要遵守Topology,Spout,Bo…

JStorm介绍

一、简介 JStorm是一个分布式实时计算引擎。JStorm是一个类似于Hadoop MapReduce的系统,用户按照指定的接口实现一个任务,然后将这个任务交给JStorm系统,JStorm将这个任务跑起来,并按7*24小时运行。如果中间一个worker发生了意外…

马氏距离实例详解

介绍 马氏距离是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示数据的协方差距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧氏距离不同的是它考虑到各种特性之间的联系(例如:一条关于身高的…

距离度量:闵氏、欧式、马氏、余弦、汉明等

目录 1. 闵氏距离(Minkowski Distance) 2. 欧式距离(Euclidean Distance) 3. 标准化欧式距离(Standardized Euclidean distance) 4. 马氏距离(Mahalanobis Distance) 5. 余弦距…

马氏距离(Mahalanobis Distance)推导及几何意义

看了一些博客对马氏距离的解释,似乎没有讲到本质的地方,本文从欧氏距离存在的问题开始入手,一步步推导出马氏距离,并得出结论:原始空间中的马氏距离等于坐标旋转变换及缩放后的空间中的欧氏距离。 假设数据集 X ∈ R N…

直观理解--马氏距离

首先我们很了解欧氏距离了,就是用来计算欧式空间(就是我们常见的坐标系)中两个点的距离的。 比如点 x ( x 1 , … , x n ) x (x_1,…,x_n) x(x1​,…,xn​) 和 y ( y 1 , … , y n ) y (y_1,…,y_n) y(y1​,…,yn​) 的欧氏距离为&…

Mahalanobis距离(马氏距离)的“哲学”解释

讲解教授:赵辉 (FROM : UESTC) 课程:《模式识别》 整理:PO主 基础知识: 假设空间中两点x,y,定义: 欧几里得距离, Mahalanobis距离, 不难发现,如果去掉…

六大距离:欧式距离、街道距离、马氏距离等

文章目录 1 简 介2 距离特征2.1 Euclidean距离2.2 Cosine距离2.3 manhattan距离2.4 chebyshev距离2.5 minkowski距离2.6 mahalanobis距离 3 代 码实现 1 简 介 数值向量是数据建模问题中最为常见的一类特征,例如: 在一些涉及图片,文本信息等…

马氏距离例题详解(全网最详细)

马氏距离例题详解 定义 马哈拉诺比斯距离是由印度统计学家马哈拉诺比斯 (英语)提出的,表示数据的协方差距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧氏距离不同的是它考虑到各种特性之间的联系(例如:一条关于身高的信息会带…

浅谈马氏距离【Mahalonobis Distance】

浅谈马氏距离【Mahalonobis Distance】 1. Introduction2. 欧式距离对于多元数据会存在一些什么问题?3 .什么是马氏距离4.马氏距离背后的数学和intuition5. 利用python来计算马氏距离6. Case1: 使用马氏距离进行多元异常值检测7. Case 2: 对分类问题应用马氏距离8. …

距离度量之马氏距离

马氏距离 用来度量一个样本点P与数据分布为D的集合的距离。 假设样本点为: 数据集分布的均值为: 协方差矩阵为S。 则这个样本点P与数据集合的马氏距离为: 马氏距离也可以衡量两个来自同一…