大家好,如果您还对Apache Storm 简介不太了解,没有关系,今天就由本站为大家分享Apache Storm 简介的知识,包括的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
主要组建和概念
zookeeper:心跳监控worker,supurvisornimbus:调度、分配任务supervisor:下载代码,创建worker和线程worker:工作进程executor:工作线程task:执行的任务拓扑:应用程序
主控节点与工作节点
有两种类型的节点Storm集群:Master节点和Worker节点。
其中,主节点只有一个,但工作节点可以有多个。
Nimbus进程与Supervisor进程
nimbus是整个集群的控制核心,负责拓扑提交、运行状态监控、任务重新分配等。
主节点运行一个名为Nimbus 的守护进程,类似于Hadoop 的JobTracker。
Nimbus 负责在集群中分发代码、向节点分配任务以及监控主机故障。
每个工作节点都运行一个名为Supervisor 的守护进程。 Supervisor 监视其主机上分配的主机的作业,并启动和停止Nimbus 分配的工作进程。
流分组(Stream grouping)
流分组是拓扑定义的一部分,指定应接收哪个流作为每个Bolt 的输入。
流分组定义了流/元组如何在Bolt 的任务之间分布。
Storm有8种内置的流分组方法:
Shuffle分组:随机分组。这样元组会尽可能随机地分配到Bolt的不同任务中,使得每个任务处理的元组数量基本保持一致,保证集群的负载均衡。字段分组:按字段分组。这样,数据流就按照定义的Field进行分组。例如,如果数据流根据名为“user-id”的字段进行分组,那么包含相同“user-id”的所有元组将被分配给同一个任务,从而保证消息处理的一致性。 Partial Key grouping:部分关键字分组。这种方法与Fields分组非常相似。它根据定义的域对数据流进行分组。不同的是,该方法会考虑下游Bolt数据处理的平衡性。当输入数据源关键词不平衡时,会出现较多的变化。良好的表现。全局分组:全局分组。这样所有的数据流都会被发送到Bolt的同一个任务,即ID最小的任务。无分组:不分组。使用此方法表明您不关心数据流如何分组。目前这种方法的结果完全等同于随机分组,但未来Storm社区可能会考虑使用非分组的方法,让Bolt和它订阅的Spout或Bolt在同一个线程中执行。 Local or shuffle grouping:本地或随机分组。如果目标Bolt 在与源Bolt 的任务相同的工作进程中具有一个或多个任务,则该元组将被随机发送到同一进程中的任务。否则,行为与普通的随机分组一致。
工作进程(Worker)
Worker是Spout/Bolt中运行特定处理逻辑的进程。工作线程是一个进程,包含一个或多个线程。
执行器(Executor)
线程是执行者,一个线程处理一个或多个任务。
任务(Task)
任务就是任务。
拓扑(Topology)
在Storm中,实时应用程序的计算任务被打包并发布为Topology。
在Storm中,拓扑任务一旦提交就永远不会结束,除非任务被主动停止。
计算任务Topology是由不同的Spout和Bolt通过数据流(Stream)连接而成的图。
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/125576.html
用户评论
素衣青丝
Apache Storm确实是一个神奇的技术!它处理实时数据的效率真的令人印象深刻,之前还在用传统方法解决类似问题可是速度慢得要命!这次终于找到了解决办法!
有8位网友表示赞同!
七夏i
看了你的文章感觉Apache Storm确实很有潜力,尤其是在数据流处理领域。我想了解更多关于它的应用场景和案例,知道它究竟是怎么在实际项目中发挥作用的。
有13位网友表示赞同!
熟悉看不清
我试过用Apache Storm来做一个简单的实时分析项目,但是调试起来头疼!文档似乎不够完善,很多问题还得自己摸索出来。希望社区可以多提供一些教程和示例代码,方便新手学习使用。
有7位网友表示赞同!
。婞褔vīp
对于数据工程师来说,掌握 Apache Storm 绝对是必不可少的技能!它可以让我们的工作效率大大提高,能够处理海量数据的实时分析需求。之前一直在用传统的ETL工具,感觉像蜗牛一样慢……
有16位网友表示赞同!
晨与橙与城
Apache Storm 确实听起来很强大,但我一直觉得开源项目总会有一些使用上的麻烦。学习曲线也估计会比较陡峭,需要花费相当的时间去理解其架构和工作原理。
有7位网友表示赞同!
岁岁年年
文章写的不错,简单明了地介绍了 Apache Storm 的基本概念。之前对该框架还不太了解,现在算是初步掌握了它的用途和优势!
有9位网友表示赞同!
何年何念
Apache Storm 和 Spark 在很多方面都有 ओवरラップ。这两个系统都擅长于处理大数据,那他们的区别到底在哪里呢?哪种技术更适合实际应用场景呢?期待看到更多对比分析的文章!
有12位网友表示赞同!
愁杀
感觉 Apache Storm 更偏向于实时数据处理的场景,而 Spark 则更适合进行离线数据分析。它们各有优缺点,需要根据具体的业务需求来选择合适的框架。
有10位网友表示赞同!
鹿叹
Apache Storm 这几天好像很火啊!Everywhere you turn,有人在议论它。到底是什么原因导致了它的突然爆红呢?我得好好研究一下!
有7位网友表示赞同!
盲从于你
对于新手来说,学习 Apache Storm 真是太有难度了!那复杂的DAG图让我头疼不已,不知道该如何设计和实现具体的作业流程…
有8位网友表示赞同!
情字何解ヘ
Apache Storm 的性能确实很让人赞赏,能够处理海量数据并实现实时分析。我在做金融风险控制的项目中遇到了大量的数据实时分析的需求,Storm 可以帮助我解决这方面的难题!
有17位网友表示赞同!
麝香味
如果要学习 Apache Storm,我建议先从基础概念入手,理解其工作机制和架构设计。然后可以参考一些开源项目示例代码,逐步深入理解它的使用技巧。
有20位网友表示赞同!
全网暗恋者
Apache Storm 的核心思想还是基于流式数据的模型,它能够将连续不断的数据实时处理并生成结果。这对于许多需要即时反馈的场景都有着巨大的应用价值!
有11位网友表示赞同!
反正是我
Apache Storm 能够高效地处理分布式数据并进行计算,其优化的调度机制和容错能力都是它的亮点。但是同时也需要注意资源管理问题,避免系统不堪重负。
有6位网友表示赞同!
冷青裳
我一直在寻找一种技术来实现实时监控系统,Apache Storm 看似是一个不错的选择!它支持来自多种数据源的实时流数据处理,并且能够灵活地配置不同的拓扑结构。让我好好研究一下吧!
有8位网友表示赞同!
短发
我对 Apache Storm 的使用场景感兴趣,它究竟在哪些领域得到了应用?有哪些成功案例?期待看到更多实用的内容!
有12位网友表示赞同!
万象皆为过客
Apache Storm 确实是一个很强大的框架,但我感觉它还有一些局限性。比如它的数据持久化能力有限,需要与其他系统配合才能实现完整的存储功能。
有18位网友表示赞同!
你很爱吃凉皮
总的来说,Apache Storm 是一个非常有潜力的技术框架,它为实时数据处理提供了强大的工具和能力。 随着技术的不断发展,我相信Apache Storm 将会有更广阔的发展空间!
有19位网友表示赞同!