storm记录--4-- Storm适用场景

Storm基础(二)--Storm的应用场景 概述 要从海量数据中提取加工对业务有用的信息,选取合适的技术将事半功倍,省去了重新造轮子的烦恼。对海量数据进行批处理运算,Hadoop依旧保持着无法撼动的地位。但在对实时性要求较高的应用场景中,Hadoop就显得力不从心。它需要将数据先落地存储到HDFS上,然后再通过MapReduce进行计算。这样的批处理运算流程使它很难将延时缩小到秒级。 Storm的处理速度最快可以达到毫秒级别。Storm... 阅读详情

Storm适用场景

  1. 流聚合:

    流聚合就是把两个或多个数据流聚合成一个数据流 -- 基于一些共同的tuple字段。

    builder.setBolt(5,new MyJoiner(),parallelism)

     .fieldsGrouping(1,new Fields("joinfield1","joinfield2"))

     .fieldsGrouping(2,new Fields("joinfield1","joinfield2"))

     .fieldsGrouping(3,new Fields("joinfield1","joinfield2"))

  2. 批处理:

    有时候为了性能或者一些别的原因,你可能想把一组tuple一起处理,而不是一个一个单独处理。

  3. BasicBolt:

    a、读一个输入tuple;

    b、根据这个输入tuple发射一个或者多个tuple;

    c、在execute的方法的最后ack那个输入tuple

    遵循这类模式的bolt一般是函数或者是过滤器,这种模式太常见,storm为这类模式单独封装了一个接口:IbasicBolt。

  4. 内存内缓存 + Fields grouping组合

    在bolt的内存里面缓存一些东西非常常见。缓存在和fields grouping结合起来之后就更有用了。比如,你有一个bolt把短链接变成长链接(bit.ly,t.co之类的)。你可以把短链接到长链接的对应关系利用LRU算分缓存在内存里面以避免重复计算。比如组件一发射短链接,组件二把短链接转化成长链接并缓存在内存里面。看一下下面两段代码有什么不一样:

    builder.setBolt(2,new ExpandUrl(),parallelism).shuffleGrouping(1);

    builder.setBolt(2,new ExpandUrl(),parallelism).fieldsGrouping(1,new Fields("url"));

  5. 计算top N

    比如你有一个bolt发射这样的tuple:"value","count"并且你想一个bolt基于这些信息算出top N的tuple。最简单的办法是有一个bolt可以做一个全局的grouping的动作并且在内存里面保持着top N的值。

    这个方式对于大数据量的流显然是没有扩展性的,因为所有的数据会被发到同一台机器。一个更好的方法是在多台机器上面并行的计算这个流每一部分的top N,然后再由一个bolt合并这些机器上面所算出来的top N以算出最后的top N,代码大概是这样的:

    builder.setBolt(2,new RankObjects(),parallellism).fieldsGrouping(1,new Fields("value"));

    builder.setBolt(3,new MergeObjects()).globalGrouping(2);

    这个模式之所以可以成功是因为第一个bolt的fieldsgrouping使得这种并行算法在语义上是正确的。

  6. 用TimeCacheMap来高效地保存一个最近被更新的对象的缓存:

    有时候你想在内存里面保存一些最近活跃的对象,以及那些不再活跃的对象。TimeCacheMap是一个非常高效地数据结构,它提供了一些callback函数使得我们在对象不再活跃的时候我们可以做一些事情。

  7. 分布式RPC:CoordinatedBolt和KeyedFairBolt:

    用storm做分布式RPC应用的时候有两种比较常见的模式:它们被封装在CoordinatedBolt和KeyedFairBolt里面。

    CoordinatedBolt包装你的bolt,并且确定什么时候你的bolt已经接收到所有的tuple,它主要使用Direct Stream来做这个。

    KeyedFairBolt同样包装你的bolt并且保证你的topology同时处理多个DRPC调用,而不是串行的一次只执行一个。

Flink与storm的主要区别译文 Qestion: Flink被用来和Spark相比,但是我认为这样的比较不太合适,把Flink窗口事件和Spark微批处理进行比较,同样的Flink与Samza对比也是,这两种情况下的比较都是实时流计算与批量处理事件策略的比较,我更想比较Flink与Storm之间的区别,这两者在概念上更相近。 我发现了这个幻灯片1(4),他主要的区别在于“可调整延迟时间”,在Slicon Angle的文章中一... 阅读详情

相关推荐

storm架构原理及集群部署

Storm 流式计算 1. 概念 1.1 离线计算和实时计算 离线计算:批量获取数据、批量传输数据、周期性批量计算数据、数据展示 ​ 代表技术:Sqoop批量导入数据、HDFS批量存储数据、MapReduce批量计算数据、Hive批量计算数据、zookeeper任务调度 1、hivesql 2、调度平台 3、Hadoop集群运维 4、数据清洗(脚本语言) 5、元数据管理 6、数据稽...

arne's Blog 1144

理解Apache Storm的实际用途和应用场景

比如,智能城市中的空气质量监测系统可以使用Storm来实时分析传感器数据,并根据分析结果动态调整城市管理策略。Storm可以用来实现实时ETL流程,从多个数据源抽取数据,进行清洗和转换,然后实时加载到数据仓库或数据库中。例如,电商网站可以实时收集和处理用户交易数据,实时更新其数据仓库。例如,在线零售商可以实时监控订单处理情况,当订单处理时间异常增加时,及时通知相关人员进行处理。广告公司可以使用Storm来处理来自网站或应用的点击流数据,以便实时计算广告点击率和转化率,从而动态调整广告投放策略。

华仔的博客 811

告别GIS软件!用R语言ggplot2+ggmapcn绘制出版级世界地图(附5种投影对比图)

本文提供了一份完整的实践指南,教你如何利用R语言及其强大的ggplot2生态系统,结合ggmapcn包,绘制出出版级的世界地图。文章详细对比了五种经典地图投影(如摩尔维德、罗宾森投影)的代码实现与视觉差异,并讲解了如何添加比例尺、指北针等专业元素,最终导出高清PDF,实现从数据分析到专业可视化的全流程代码化操作,彻底告别传统GIS软件。

p5l2m9n4o6q的博客 406

Hadoop与Storm的对比

1、Hadoop上运行的是MapReduce jobs,而在Storm上运行的是topology。2、 Hadoop使用磁盘作为中间交换的介质,而storm的数据是一直在内存中流转。3、hadoop的数据源是HDFS上某文件夹下已经存在的TB级的大数据,待处理的数据是相对不变的;而Storm的数据源是实时新增的B或KB级的小数据,处理的数据是支持增加的。4、一个MapReduce job数据处理完...

lvlei19911108的博客 559

新手入门机器学习案例(附源代码)

无

guguo666的博客 6655

AD20.多对多工程中将某个原理图导入PCB工程

AD20将多个原理图中的一个或多个导入到PCB文件中

鬼爷杂货铺 1万+

storm的特性与使用场景

Storm的一些关键特性 适用场景广泛: storm可以实时处理消息和更新DB,对一个数据量进行持续的查 询并返回客户端(持续计算),对一个耗资源的查询作实时并行化的处理(分布式 方法调用,即DRPC),storm的这些基础API可以满足大量的场景。  可伸缩性高:  Storm的可伸缩性可以让storm每秒可以处理的消息量达到很高。 扩展一个实时计算任务,你所需要做

跟我一起去征服 7414

STM32F4系列HAL库配置定时器实验——输入捕获

STM32F4系列HAL库配置定时器实验——输入捕获 输入捕获简单讲解 输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量周期和频率为例,用一个简图来说明输入捕获的原理 假定定时器工作在向上计数模式, 图中 t1~t2 时间,就是我们需要测量的高电平时间。测量方法如下:首先设置定时器通道 x 为 上升沿捕获,这样,t1 时刻,就会捕获到当前的 CNT 值,然后立即清零 CNT,并设置通道 x为下降沿捕获,这样到 t2 时刻,又会发生捕获事件,得到此时的 CNT 值,记为 CCRx2。这样,根据定时器

azs0504的博客 9285

Storm简介

场景 伴随着信息科技日新月异的发展,信息呈现出爆发式的膨胀,人们获取信息的途径也更加多样、更加便捷,同时对于信息的时效性要求也越来越高。举个搜索场景中的例子,当一个卖家发布了一条宝贝信息时,他希望的当然是这个宝贝马上就可以被卖家搜索出来、点击、购买啦,相反,如果这个宝贝要等到第二天或者更久才可以被搜出来,估计这个大哥就要骂娘了。再举一个推荐的例子,如果用户昨天在淘宝上买了一双袜子,今天想买一

Hadoop、HBase、ElasticSearch、Storm、Kafka、Spark 2万+

【精细解读】xapp585(多通道LVDS接口ADC)

xapp585的参考设计有Verilog和VHDL两种源码。

FPGA艺术家的博客 532

SerDes学习笔记:均衡技术详解 01

本文系统阐述了高速SerDes链路中均衡技术的应用原理与实现方法。重点介绍了发射端预加重/FIR均衡和接收端CTLE/DFE/FFE等主流均衡方案,详细探讨了各类均衡器的频域特性、时域效果及硬件实现架构。

一只豌豆象的博客 1291

Lucky 路由:5分钟配好DDNS+端口转发,告别记IP

周五晚上客户临时要一份NAS里的资料,人在地铁上根本连不上;光猫一重启,公网IP又换了,记IP这条路彻底走不通。 Lucky 是一款面向软硬路由的一体化工具:DDNS、IPv4/IPv6 端口转发、反向代理、WOL 远程唤醒,全部在一个网页后台里配完。 ## Docker一条命令部署 Lucky ```bash docker run -d --name lucky --restart=alw

gitblog_00536的博客 354

预编码算法(个人总结)

预编码算法是无线通信系统中的关键技术,通过在发送端对信号进行处理,可以有效减少干扰,提高系统性能。预编码算法在5G、Wi-Fi、卫星通信等领域具有广泛的应用前景,同时,随着深度学习、大规模MIMO和物理层安全等技术的发展,预编码算法的研究将进一步推动无线通信技术的发展。CSI的准确性直接影响到预编码的效果。预编码是一种在发送端对信号进行线性变换的技术,以优化信号的空间分布,使得接收端能够更好地接收和解码信号。预编码算法,特别是基于矩阵分解的预编码算法,计算复杂度较高,限制了其在实际系统中的应用。

年糕的博客 5287

【Apache Storm】

Apache Storm 作为一种强大的实时流处理框架,已经被广泛应用于多个领域,如金融交易监控、实时日志分析、用户行为分析等场景。Storm 的事件驱动模型、低延迟处理能力、分布式容错机制,使其在处理实时数据流时具有明显的优势。尽管 Storm 在低延迟和高可靠性方面表现出色,随着流处理领域的发展和用户需求的演变,Storm 也面临着进一步发展的机遇与挑战。

athicket 1140

matlab 点云按高程进行赋色【2024最新版】

首先按照Z轴方向求取所在点云的高程极值(包括高程最大值与最小值),然后将高程归一化到0~255范围内,最后采用matlab中的colormap颜色渲染函数进行赋色并保存渲染结果到点云。

点云侠的博客 3341

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Storm 内存缓存优化指南:从缓存场景到实战应用

在实时流处理系统中,性能和延迟是永恒的主题。无论是频繁访问的外部数据库,还是重复计算的热点数据,都可能成为系统的瓶颈。而内存缓存,作为连接计算与存储的"高速公路",能够大幅提升处理效率,降低延迟。本文将深入剖析在 Storm 中使用内存缓存的多种场景、实现方式以及注意事项,帮助读者通过缓存技术将拓扑性能推向极致。缓存类型适用场景优点缺点本地缓存单节点、可容忍不一致最快、零网络开销数据不一致分布式缓存需要共享数据一致、共享网络开销两级缓存兼顾性能与一致性平衡实现复杂最佳实践缓存热点数据。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 2501

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Storm简介与设计思想

实时计算概述 有别于传统的离线批处理操作(对很多数据的集合进行的操作),实时处理,说白就是针对一条一条的数据/记录进行操作,所有的这些操作进行一个汇总(截止到目前为止的所有的统计总和)。 实时计算与离线计算比较 Bounded:有界 离线计算面临的操作数据都是有界限的,无论是1G、1T、1P、1EB、1NB 数据的有界必然会导致计算的有界 UnBounded:××× ...

一介布衣的博客 813

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

关于storm程序性能压测记录及总结

STORM性能压测步骤记录及总结 压测前的准备    1.明确压测计划和方案。     (1).首先确定本次压测的目的是什么。    (2).例如是验证目标工程是否能够达到预定的性能指标,还是需要通过调整压测资源的分配,经过多次压测比对结果,发现性能瓶颈的所在。    (3).压测指标一般来说是根据往年同时段或者最近一次大促峰值的数据量按照一定比例增加后评估得出的。 可能会影响性...

bangbingcang1870的博客 307

storm集群搭建

实时计算     -----有别于传统的离线批处理操作(对很多数据的集合进行的操作),实时处理,说白就是针对一条一条的数据/记录进行操作, 所有的这些操作进行一个汇总(截止到目前为止的所有的统计总和) 实时计算和离线计算面临的数据的特征:     Bounded:有界         离线计算面临的操作数据都是有界限的,无论是1G、1T、1P、1EB、1NB         数据的有界必然会导致计...

dingwei_zhaoxin的博客 254

搞定storm-入门

文章目录大数剧-storm一、Storm是什么二、Storm的特点三、Storm的应用四、Storm模型五、概念1. 拓扑(Topologies)2. 元组(Tuple)3. 流(Streams)4. Spouts5. Bolts6. 任务(Tasks)7. 组件(Component)8. 流分组(Stream Grouping)9. 可靠性(Reliability)10. Workers(工作进程)六、Storm中用到的技术七、Storm架构思想1. Storm和Hadoop架构组件功能对应关系2. St

张文军 2340

人工智能驱动的知识管理系统(Storm)

Storm是斯坦福大学开发的一个开源人工智能驱动的知识管理系统。 STORM基于大语言模型(LLM),能够从零开始构建类似维基百科的文章,通过互联网搜索和引用整理,生成完整的带有引注的长篇文章。它特别适合希望轻松探索新领域,获取相关信息并将其组织成知识体系的用户。

weixin_43156294的博客 1543

storm七之storm java示例

通过前面6个章节,我们大致了解apache storm的核心细节了,现在我们开始写一些简单的代码,来感受下storm的魅力。 场景——移动呼叫日志分析 移动电话呼叫号及其持续时间将作为Apache stormd的输入流,storm将根据拨号方和接收方之间的电话号码以及通话次数进行分组。       Spout Creation Spout是storm用于数据生成的一个组件,。 通常

licw_0909的博客 5820

Storm 流式计算框架介绍

Storm流式计算框架介绍

weixin_44911248的博客 4708

linux下storm集群配置,Storm集群搭建

本帖最后由 pig2 于 2014-4-7 12:25 编辑Storm是什么?Storm是Twitter开源的一个分布式的实时计算系统使用场景:数据的实时分析,持续计算,分布式RPC等等.Storm特点:(Storm类似手扶电梯,不出故障就会一直运行.hadoop类似升降电梯,到达一定程度会停止)分布式可扩展高可靠性编程模型简单高效实时常用的类:BaseRichSpout(消息生产者)Base...

weixin_39951378的博客 226

【Storm】一、Storm是什么?

大纲: 离线计算是什么? 流式计算是什么? 流式计算与离线计算的区别? Storm是什么? Storm与Hadoop的区别? Storm的应用场景及行业案例 Storm的核心组件 Storm的编程模型 流式计算的一般架构图 1、离线计算是什么? 离线计算:批量获取数据、批量传输数据、周期性批量计算数据、数据展示 代表技术:Sqoop批量导入数据、HDFS批量存储数据、Map...

u014526017的博客 914
上一篇: storm记录--3--Storm的基本概念
下一篇: storm记录--5-- Storm集群安装
架构师的清醒
博客等级 码龄14年 291粉丝 397原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值