流计算框架storm概览

11_storm流计算深入浅出_note Storm流计算 1 流计算概述 1.1 静态数据和流数据 很多企业为了支持决策分析而构建的数据仓库系统,其中存放的大量历史数据就是静态数据。技术人员可以利用数据挖掘和OLAP(On-Line Analytical Processing)分析工具从静态数据中找到对企业有价值的信息 近年来,在Web应用、网络监控、传感监测等领域,兴起了一种新的数据密集型应用——流数据,即数据以大量、快速、时变的... 阅读详情

Attention: 

supervison 和 nimbus的状态都实时保存在zookeeper集群中和本地.  Enchance, this means you can kill -9 Nimbus or the Supervisors and they'll start back up as nothing happened. 

Topologies

1. storm jar all-my-code.jar org.apache.storm.MyTopology arg1 arg2   

The main function of the class defines the topology and submits it to Nimbus. 

The storm jar part takes care of connecting to Nimbus and uploading the jar.

2. Since topology definitions are just Thrift structs, and Nimbus is a Thrift service, you can create and submit topologies using any programming language.    (相当于任何语言都可以进行http协议,提交服务器一样.)

(Thrift是一种接口描述语言和二进制通讯协议,它被用来定义和创建跨语言的服务。它被当作一个远程过程调用(RPC)框架来使用,是由Facebook为“大规模跨语言服务开发”而开发的。)

Streams

The core abstraction in Storm is the "stream".  A stream is an unbounded sequence of tuples.

Networks of spouts and bolts are packaged into a "topology" which is the top-level abstraction that you submit to Storm clusters for execution.

When a spout or bolt emits a tuple to a stream, it sends the tuple to every bolt that subscribed to that stream.

 

Data model

   Storm uses tuples(元组,数组.) as its data model. A tuple is a named list of values, and a field in a tuple can be an object of any type.

   Every node in a topology must declare the output fields for the tuples it emits.

   

A simple topology

TopologyBuilder builder = new TopologyBuilder();        
builder.setSpout("words", new TestWordSpout(), 10);        
builder.setBolt("exclaim1", new ExclamationBolt(), 3)
        .shuffleGrouping("words");
builder.setBolt("exclaim2", new ExclamationBolt(), 2)
        .shuffleGrouping("exclaim1");
 

Running ExclamationTopology in local mode

To run a topology in local mode run the command storm local instead of storm jar.

Stream groupings

TopologyBuilder builder = new TopologyBuilder();

builder.setSpout("sentences", new RandomSentenceSpout(), 5);        
builder.setBolt("split", new SplitSentence(), 8)
        .shuffleGrouping("sentences");
builder.setBolt("count", new WordCount(), 12)
        .fieldsGrouping("split", new Fields("word"));

 

分组类型的区别: shuffleGrouping, fieldsGrouping
shuffleGrouping 随机发送tuple给bolt.
fieldsGrouping 按照固定字段去发送tuple给bolt.

Fields groupings are the basis of implementing streaming joins and streaming aggregations as well as a plethora of other use cases. Underneath the hood, fields groupings are implemented using mod hashing.

字段分组是实现流连接和流聚合以及大量其他用例的基础。在幕后,字段分组是使用mod哈希实现的。

Defining Bolts in other languages

 Storm ships with adapter libraries for Ruby, Python, and Fancy.

public static class SplitSentence extends ShellBolt implements IRichBolt {
    public SplitSentence() {
        super("python", "splitsentence.py");
    }

    public void declareOutputFields(OutputFieldsDeclarer declarer) {
        declarer.declare(new Fields("word"));
    }
}
 

import storm

class SplitSentenceBolt(storm.BasicBolt):
    def process(self, tup):
        words = tup.values[0].split(" ")
        for word in words:
          storm.emit([word])

SplitSentenceBolt().run()

Trident (achieve exactly-once messaging semantics for most computations) 

Storm guarantees that every message will be played through the topology at least once. A common question asked is "how do you do things like counting on top of Storm? Won't you overcount?" Storm has a higher level API called Trudent that let you achieve exactly-once messaging semantics for most computations.  

大多数计算实现一次消息传递语义, 对统计具有重要意义.

Trident developed from an earlier effort to provide exactly-once guarantees for Storm

Storm流计算完整流程Demo 附代码 Storm流计算完整流程Demo代码 最近公司有项目要用到流计算,人手不足,我就入伙了,通过两天的学习搭建了一个小Demo,特此记录 前言 什么是大数据,流计算,Storm就不多说了,自行百度。 主要流程是通过RocketMQ发送和获取数据,然后通过JStorm计算拿取的数据,最后直接再本地控制台显示计算结果。 RocketMQ的安装可以参考如下:https://www.jianshu.com/p... 阅读详情

相关推荐

鸿蒙OS开机动画背后的秘密:从代码到视觉的完整解析(附源码分析)

本文深入解析了鸿蒙OS开机动画的系统级实现原理。从bootanimation服务的启动配置、与Render Service的协同,到基于VSync信号的帧率同步与绘制流水线,结合OpenHarmony源码进行了逐行解读。文章揭示了其事件驱动的优雅退出机制,并探讨了视频支持、多屏适配等高级特性与定制化可能,为开发者理解鸿蒙图形子系统提供了硬核技术视角。

sony5的博客 972

python 流式计算框架_流式计算的三种框架:Storm、Spark和Flink

我们知道,大数据的计算模式主要分为批量计算(batch computing)、流式计算(stream computing)、交互计算(interactive computing)、图计算(graph computing)等。其中,流式计算和批量计算是两种主要的大数据计算模式,分别适用于不同的大数据应用场景。目前主流的流式计算框架有Storm、Spark Streaming、Flink三种,其基本原...

weixin_39545017的博客 1048

vmware vsphere5---部署vCSA(VMware vCenter Server)附带第二阶段安装报错解决方案

因为这份文档我是边做边写的,遇到问题重新装了好几次所以IP会很乱ESXI主机为192.168.20.10VCSA为192.168.20.7,后台为192.168.20.7:5480后期请自行对应,后面的192.168.20.57请对应192.168.20.7,或根据自己的来。

m0_70212665的博客 5714

入门流计算——Storm

本文介绍流计算的概念、什么是Storm、Storm的安装以及如何运行Storm自带的单词统计测试例子。 文章目录静态数据和流数据批量计算和实时计算流计算框架的要求认识StormStorm简介Storm的设计思想Storm的框架设计Storm的安装运行Storm自带的测试例子 静态数据和流数据 在讲清楚什么是Storm之前,我们需要了解流计算的概念。而在讲清楚什么是流计算之前,我们要先了解流计算的处理对象:流数据,而要阐明什么是流数据,我们又不得不先引入流数据的对照物:静态数据。 数据总体上可以分为静态数据和

阿坨的博客 1532

有限差分法地震数据正演模拟(二)

正演模拟,是在地球物理勘探研究中,根据地质体的形状、产状和物性数据,通过构造数学模型计算得到其理论值(数学模拟),或通过构造实体模型来观测模型所产生的地球物理效应的数值(物理模拟)。p(t+1,x,z)即为下一时刻的波长信息,该波动方程的意义就是通过前一时刻(p(t-1,x,z))和现在时刻(p(t,x,z))预测下一时刻波的传播情况。声波波动方程:反应声波的传播规律,描述最简单的波现象的方程,p代表波场信息,v表示速度场信息因为速度只与速度场有关,所以只与x,z有关。其结果也可以作为反演的验证。

weixin_46285501的博客 3937

区块链技术概述:从比特币到Web3.0

区块链技术正重塑数字世界的信任机制。本文系统梳理了区块链的发展路径:从比特币的PoW共识和UTXO模型,到以太坊的智能合约和账户体系,直至Web3.0的去中心化互联网愿景。文章详细解析了区块链的核心特性(去中心化、不可篡改等)和数据结构,通过流程图展示了比特币交易生命周期和智能合约执行流程,并对比了Web2.0与Web3.0的关键差异。最后,用Python代码实现了包含区块类、交易处理和挖矿机制的简易区块链系统,为理解区块链底层原理提供了实践参考。

闲人编程的博客 456

流计算、flink、storm、spark streaming、spark

SPARK Apache软件基金会下的顶级开源项目之一,Apache软件基金会最重要的三大分布式计算系统开源项目之一(Hadoop、Spark、Storm) Flink Apache 软件基金会顶级项目,是Apache软件基金会的5个最大的大数据项目之一 Storm Apache顶级项目 2 以下说法不正确的是: A、 Flink可以支持“精确一次”的容错性,但是无法做到毫秒级的实时处理。 B、 Spark Streaming可以实现高吞吐和容错性,但不具备低延迟和实时处理能力。 C、 Flink具有独立

qq_48566899的博客 3289

Python之achatbot包语法、参数和实际应用案例

本书是一本PyTorch深度学习实战指南,分为基础(前6章)和进阶(后5章)两大部分。基础部分涵盖张量运算、神经网络、数据预处理及CNN等核心内容;进阶部分则深入图像、文本、音频建模技术,重点解析Transformer架构及大语言模型开发。全书采用"理论+实践"模式,适合从零基础到进阶的PyTorch学习者。

王国平的博客 632

流计算框架 Flink 与 Storm 的性能对比

流计算框架 Flink 与 Storm 的性能对比 1. 背景 Apache Flink 和 Apache Storm 是当前业界广泛使用的两个分布式实时计算框架。其中 Apache Storm(以下简称“Storm”)在美团点评实时计算业务中已有较为成熟的运用(可参考 Storm 的可靠性保证测试:https://tech.meituan.com/test-of-

huangshulang1234的博客 2万+

YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进

如今各种网络模型更新迭代越来越快,计算机视觉相关的文章也越来越多,多到一些普通,通用的改进点无法达到发表的要求。本专栏正是解决这个问题!如何寻找创新点?为什么要使用这个模块?如何才能提升模型的精度?这是贯穿我们研究始终的问题。创新点在这个专栏中我已经整理好了,这已经省去了大部分时间,但是当我们使用这些新的模块去优化已有的模型,如何才能提升模型的精度,才是我们要达到的最终目标。当然我们可以使用传统的A+B+C的方法去堆积模块,然后是进行大量的实验去排列组合以实现最终的精度提升,这无可厚非。

Limiiiing的博客 6万+

什么是 SAP ABAP AMDP?

SAP HANA是SAP开发的一种内存数据库管理系统,它具有出色的性能和处理大规模数据的能力。为了充分利用SAP HANA的性能,SAP引入了AMDP技术,以便将数据库操作推送到数据库服务器执行,从而减少数据传输和处理时间。AMDP方法通常需要输入参数和输出参数。输入参数用于传递数据到SQLScript代码,而输出参数用于接收SQLScript代码的结果数据。ENDMETHOD.ENDCLASS.我们定义了一个输入参数来传递销售订单数据,以及一个输出参数来接收计算结果。ENDMETHOD.

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 908

流计算框架——Storm

Storm是流计算框架,相比于SparkStreaming的将流计算按照时间片将InputDstream切分成多段RDD而言,Storm的流计算可以到达毫秒级别。 Storm中有以下主要的概念: Spouts、Bolt、Stream、Topology、StreamingGrouping、Nimubis、Supervisor (1)Spouts Spouts是Storm的数据源,一般会从指定外部的数据源当中读取元组(Tuple),在Storm当中最小的数据单元是Tuple。Spouts将数据以Tuple的形式

weixin_56068397的博客 2174

2024 年高教社杯全国大学生数学建模竞赛 E 题 交通流量管控 详细思路+matlab代码+python代码+论文范例

随着城市化进程的加快、机动车的快速普及,以及人们活动范围的不断扩大,城市道。景区周边道路上既有本地居民出行,也有过境车辆,化配置,在保证车辆通行的前提下,使得两条主路上的车流平均速度最大。对五一黄金周期间的数据进行分析,判定寻找停车位的巡游车辆,并估算假。相位通过的每辆车的信息,包括拍摄地点、行驶方向、拍摄时间和车牌号。济发展和百姓幸福感的一个“痛点”,是相关部门的棘手难题之一。纬中路交叉口,根据车流量的差异,可将一天分成若干个时段,估。是小镇中两条主路的情况:纬中路,从环西路到环东路,约。

YOLO 3310

大数据技术---流计算(Storm)

一、流计算概述 流数据:实时产生的数据,并且实时不断地像流水一样到达。 流数据特征: 1、数据快速持续到达,潜在大小也许是无穷无尽的。 2、数据来源众多,格式复杂。 3、数据量大,但是不是十分关注存储,一旦经过处理,要么被丢弃,要么被归档存储。 4、注重数据的整体价值,不过分关注个别数据。 5、数据顺序颠倒,或者不完整,系统无法控制将要处理的新到达的数据元素的顺序。 数据类型:静态数据和流数据(动态计算)。 流计算:实时获取来自不同数据源的海量数据经过实时分析处理,获取有价值的信息。 流计算基本理念: 1

qq_43752469的博客 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

那些年我们用过的流计算框架

数据时代,从数据中获取业务需要的信息才能创造价值,这类工作就需要计算框架来完成。传统的数据处理流程中,总是先收集数据,然后将数据放到DB中。当人们需要的时候通过DB对数据做query,得到答案或进行相关的处理。这样看起来虽然非常合理,但是结果却非常紧凑,尤其是在一些实时搜索应用环境中的某些具体问题,类似于MapReduce方式的离线处理并不能很好地解决。 基于此,一种新的数据计算结构---流

优快云大数据 5451

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Storm(流计算)技术原理

流计算概述 什么是流数据: 数据有静态数据和流数据。 静态数据: 很多企业为了支持决策分析而构建的数据仓库系统,其中存放的大量历史数据就是静态数据。技术人员可以利用数据挖掘和OLAP(On-Line Analytical Processing)分析工具从静态数据中找到对企业有价值的信息。 图:静态数据的一般处理流程 流数据: 近年来,在Web应用、网络监控、传感监测等领域,兴...

曹世宏的博客 3万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Storm视频教程-Storm流计算之项目实战篇

Storm视频教程-Storm流计算之项目实战篇 Storm流计算之项目实战篇(Storm+Kafka+HBase+Highcharts+JQuery,含3个完整实际项目) 课程分类:大数据 适合人群:初级 课时数量:40课时 更新程度:70% 用到技术:stormKafka+HBase+Highcharts+JQuery 涉及项目:3个Storm完整项目 Storm视频教程通

北风网IT 4699

【_ 記 】Storm 流计算

Apache Storm ##背景介绍 流计算:将大规模流动数据在不断变化的运动过程中实现数据的实时分析,捕捉到可能有用的信息,并把结果发送到下一计算节点。 流计算框架 Kafka Streaming (轻)只是一套jar包,结合kafka消息队列实现的轻量级别计算框架. Apache Storm:是一款名副其实实时流计算服务(早期 阿里巴巴 ) Spark Streaming:是基于Spark...

骐骥筋力成,志在万里外 673

流计算

一.概述 实时获取来自不同数据源的海量数据经过实时分析处理,或的有价值的信息. 1.数据的处理流程 静态数据:数据不会发生变化,如数据仓库中的数据; 流数据:数据以大量,快速.时变的流形式持续到达. 2.流数据特征: 数据快速持续到达,潜在大小也许是无穷无尽的; 数据来源众多,格式复杂; 数据量大,但是不十分关注存储,一旦经过处理,要么被丢弃,要么被归档存储; 数据顺序颠倒,或者不完整,系统...

TxyITxs的博客 3538

大数据技术原理与应用第11讲:流计算

流计算秉承一个基本理念,即数据的价值随着时间的流逝而 ,如用户点击流。 A.不确定 B.不变 C.降低 D.升高 Hadoop运行的是MapReduce任务,类似地,Storm运行的任务叫做 。 A.Topology B.Tuple C.Spout D.Bolt 对于一个流计算系统来说,它应达到如下哪些需求 A.海量式 B.高性能...

一个程序媛的成长记录❤ 5211

Storm 流式计算框架介绍

Storm流式计算框架介绍

weixin_44911248的博客 4708
上一篇: Symbiosis Nest 共生巢token跨链兑换协议
下一篇: ChatGPT之深度强化学习DRL理解
gridlayout
博客等级 码龄19年 12粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值