2.storm简介

Apache Storm是一款用于实时大数据处理的分布式系统,擅长处理高并发流数据。本文对比了Storm与Hadoop的不同之处,并探讨了自行构建类似系统面临的挑战。Storm支持多种实时应用场景,具备高度可扩展性及数据处理的可靠性。
一、Storm到底是什么?


Apache Storm是一个分布式实时大数据处理系统。Storm设计用于在容错和水平可扩展方法中处理大量数据。
它是一个流数据框架,具有最高的摄取率。虽然Storm是无状态的,它通过Apache ZooKeeper管理分布式环境和集群状态。
它很简单,您可以并行地对实时数据执行各种操作


二、Apache Storm vs Hadoop


基本上Hadoop和Storm框架用于分析大数据。两者互补,在某些方面有所不同。
Apache Storm执行除持久性之外的所有操作,而Hadoop在所有方面都很好,但滞后于实时计算。
下表比较了Storm和Hadoop的属性。
----------------------------------------------------------------------------------------------------------------
Storm | Hadoop
----------------------------------------------------------------------------------------------------------------
实时流处理 | 批量处理
----------------------------------------------------------------------------------------------------------------
无状态 | 有状态
----------------------------------------------------------------------------------------------------------------
主/从架构与基于ZooKeeper的协调。     | 具有/不具有基于ZooKeeper的协调的主 - 从结构。
主节点称为nimbus,从属节点是主管。 | 主节点是作业跟踪器,从节点是任务跟踪器。
----------------------------------------------------------------------------------------------------------------
Storm流过程在集群上每秒可以访问数万条消息。 | Hadoop分布式文件系统(HDFS)使用MapReduce框架来处理大量的数据,需要几分钟或几小时。
----------------------------------------------------------------------------------------------------------------
Storm拓扑运行直到用户关闭或意外的不可恢复故障。 | MapReduce作业按顺序执行并最终完成。
----------------------------------------------------------------------------------------------------------------
两者都是分布式和容错的
----------------------------------------------------------------------------------------------------------------
如果nimbus / supervisor死机,重新启动使它 | 如果JobTracker死机,所有正在运行的作业都会丢失。
从它停止的地方继续,因此没有什么受到影响。 |
----------------------------------------------------------------------------------------------------------------






三、我们能不能自己搞一套storm?


坑,海量高并发大数据,高并发的请求数据,分布式的系统,流式处理的分布式系统
如果自己搞一套实时流系统出来,也是可以的,但是。。。。


(1)花费大量的时间在底层技术细节上:如何部署各种中间队列,节点间的通信,容错,资源调配,计算节点的迁移和部署,等等


(2)花费大量的时间在系统的高可用问题上:如何保证各种节点能够高可用稳定运行


(3)花费大量的时间在系统扩容上:吞吐量需要扩容(5万/s,10万/s,扩容)的时候,你需要花费大量的时间去增加节点,修改配置,测试,等等




四、storm的特点是什么?


(1)支撑各种实时类的项目场景:实时处理消息以及更新数据库,基于最基础的实时计算语义和API(实时数据处理领域);
对实时的数据流持续的进行查询或计算,同时将最新的计算结果持续的推送给客户端展示,同样基于最基础的实时计算语义和API
(实时数据分析领域);对耗时的查询进行并行化,基于DRPC,即分布式RPC调用,单表30天数据,并行化,每个进程查询一天数据,
最后组装结果


(2)高度的可伸缩性:如果要扩容,直接加机器,调整storm计算作业的并行度就可以了,storm会自动部署更多的进程和线程到其他的机器上去,无缝快速扩容


(3)数据不丢失的保证:storm的消息可靠机制开启后,可以保证一条数据都不丢,数据不丢失,也不重复计算


(4)超强的健壮性:从历史经验来看,storm比hadoop、spark等大数据类系统,健壮的多的多,因为元数据全部放zookeeper,不在内存中,随便挂都不要紧


(5)使用的便捷性:核心语义非常的简单,开发起来效率很高

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值