Jstorm 基本概念

article/2025/8/30 16:23:38

本质

  1. 基于消息的流水线处理模型
  2. 是一套类似MapReduce一样的编程模型
  3. 内核是一套调度系统

适合的业务

  1. 高并发的计算任务
  2. 数据流之间相互无依赖

编程模型

  1. Topology:即一个数据流的拓扑结构,包含多个Spout和Bolt
  2. Spout:从外部获取数据,包含DB,Hbase,Kafka等
  3. Bolt :计算单元,系统内计算流转数据
    这里写图片描述

角色

  1. Nimbus: 资源调度角色,可主备
  2. Supervisor: 接受nimubs 任务安排,启动任务,管理Worker
  3. Worker: 进程
  4. Executor: 执行线程,继承自Runnable
  5. Task: 执行逻辑单元,继承自Runnable

ack机制

ack闭环,保证数据不丢失(以后会结合源码分析ack实现)

这里写图片描述

  1. 设置acker 的并行个数,如果设置为0,acker失效,不能保证数据不丢失,或者设置配置topology.acker.executors(默认为null,即与该任务的work数一致)

    stormConf.setNumAckers(JStormUtils.parseInt(conf.getProperty("jstorm.acker.num")));
  2. Spout 发送消息必须带msgId,否则不能实现acker闭环

    collector.emit(new Values(strMsg), new KafkaMessageId(partition, toEmitMsg.offset()));
  3. Bolt发送消息必须传入接收到的tuple作为anchors参数的值,这样才能锚定tuple,将此Bolt纳入Ack闭环中

        public List<Integer> emit(String streamId, Collection<Tuple> anchors,List<Object> tuple)
  4. topology.max.spout.pending设置,默认为null,无限。对spout task接收速度进行流控。当topology.max.spout.pending=5000,对于spout而言,还有5000个没有进行ack,就会停止spout的nextTuple。

    topology.max.spout.pending设置后,会降低整个系统的吞吐量,可根据自己系统要求自行设置,以先某个数值开始,不断增加,最终达到系统稳定且吞吐量合适

    topology.max.spout.pending要起作用,必须锚定tuple,因为这个是在ack闭环的基础上实现的。所以必须满足条件1,2,3

  5. spout发送的事件在超时时间(topology.message.timeout.secs 默认为30s)内没有最终ack闭环,系统就会自动调用spout.fail,由spout编写者自行处理,一般在里面实现重传,如果实现不好,或者不处理,数据也会丢失

  6. acker闭环并不保证数据不丢失,只是提供了一个机制可以实现数据不丢失,取决于Spout的编写者。acker闭环完成会调用spout.ack,闭环失败或者超时会调用 spout.fail

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

相关文章

JStorm和Storm比较

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

JStorm Storm 上手demo

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

PyTorch从零开始实现Transformer

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

jstorm storm 入门demo

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

JStorm介绍

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

马氏距离实例详解

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

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

目录 1. 闵氏距离&#xff08;Minkowski Distance&#xff09; 2. 欧式距离&#xff08;Euclidean Distance&#xff09; 3. 标准化欧式距离&#xff08;Standardized Euclidean distance&#xff09; 4. 马氏距离&#xff08;Mahalanobis Distance&#xff09; 5. 余弦距…

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

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

直观理解--马氏距离

首先我们很了解欧氏距离了&#xff0c;就是用来计算欧式空间&#xff08;就是我们常见的坐标系&#xff09;中两个点的距离的。 比如点 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距离(马氏距离)的“哲学”解释

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

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

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

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

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

浅谈马氏距离【Mahalonobis Distance】

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

距离度量之马氏距离

马氏距离 用来度量一个样本点&#xff30;与数据分布为&#xff24;的集合的距离。 假设样本点为&#xff1a; 数据集分布的均值为&#xff1a; 协方差矩阵为&#xff33;。 则这个样本点&#xff30;与数据集合的马氏距离为&#xff1a; 马氏距离也可以衡量两个来自同一…

马氏距离(Mahalanobis Distance)介绍与实例

本文介绍马氏距离&#xff08;Mahalanobis Distance&#xff09;&#xff0c;通过本文&#xff0c;你将了解到马氏距离的含义、马氏距离与欧式距离的比较以及一个通过马氏距离进行异常检测的例子&#xff08;基于Python的sklearn包&#xff09;。 目的 计算两个样本间的距离时…

马氏距离-Mahalanobis Distance

一、学习目的 在训练one-shoting learning 的神经网路的时候&#xff0c;由于采用的是欧式距离&#xff0c;欧氏距离虽然很有用&#xff0c;但也有明显的缺点。它将样品的不同属性&#xff08;即各指标或各变量&#xff09;之间的差别等同看待&#xff0c;这一点有时不能满足实…

欧氏距离与马氏距离

Preface 之前在写《Multi-view CNNs for 3D Objects Recognition》的阅读笔记的时候&#xff0c;文章中的一个创新点便是将MVCNN网络提取到的3D Objects的形状特征描述符&#xff0c;投影到马氏距离&#xff08;Mahalanobis Distance&#xff09;上&#xff0c;“这样的话&…

马氏距离 Mahalanobis Distance

马氏距离 Mahalanobis Distance 1. 马氏距离定义2. 马氏距离实际意义2.1 欧氏距离近就一定相似&#xff1f;2.2 归一化后欧氏距离就一定相似&#xff1f;2.3 算上维度的方差就够了&#xff1f; 3. 马氏距离的几何意义4. 马氏距离的推导5. 马氏距离限制 Reference: 马氏距离(Mah…

马氏距离概念

马氏距离 一、基本概念&#xff1a; 方差&#xff1a;方差是标准差的平方&#xff0c;而标准差的意义是数据集中各个点到均值点距离的平均值。反应的是数据的离散程度。 协方差&#xff1a;标准差与方差是描述一维数据的&#xff0c;当存在多维数据时&#xff0c;我们通常需要知…

马氏距离通俗理解

基础知识&#xff1a; 假设空间中两点x&#xff0c;y&#xff0c;定义&#xff1a; 欧几里得距离&#xff0c; Mahalanobis距离&#xff0c; 不难发现&#xff0c;如果去掉马氏距离中的协方差矩阵&#xff0c;就退化为欧氏距离。那么我们就需要探究这个多出来的因子究竟有什么含…