我一直在努力理解Storm建筑,但我不确定我是否理解正确。我会尽可能准确地解释我认为的情况。请解释一下如果我错了什么是对的。
http://storm.apache.org/releases/2.0.0-SNAPSHOT/Understanding-the-parallelism-of-a-Storm-topology.html这意味着一个工人也是一个过程http://storm.apache.org/releases/2.0.0-SNAPSHOT/Concepts.html然而,对于“工作进程。每个工作进程都是一个物理JVM”http://storm.apache.org/releases/1.0.1/Setting-up-a-Storm-cluster.html表示一个worker是一个带有“Nimbus和worker machines”的节点。网站http://www.michael-noll.com/tutorials/running-multi-node-storm-cluster/提到“主节点”和“工作节点”。那么,工作人员是一个进程还是一个物理节点(或者一个节点是一个进程)?因此,我认为有两件事:工作节点和工作进程。
Nimbus是一个JVM进程,运行在物理主节点上,它接收我的程序(Storm拓扑),从中获取螺栓和喷嘴并生成任务。如果一个螺栓应该并联三次,光环会为它生成三个任务。Nimbus向ZooKeeper JVM进程询问集群的配置,例如在哪里运行这些任务,ZooKeeper JVM进程告诉Nimbus。为了做到这一点,动物园管理员与管理员进行沟通(他们的情况将在稍后公布)。Nimbus将任务分配给Workers节点,后者是物理节点。工作节点由主管管理,主管是JVM进程——一个工作节点只有一个主管。主管管理(启动、停止等)工作进程,这是在工作节点上运行的JVM进程。每个工作节点都可以运行多个工作进程。工作进程是JVM进程。它们运行一个或多个被称为执行器的线程。每个Executor线程运行一个或多个任务,这意味着螺栓或喷嘴的一个或多个实例,但它们必须是同一个螺栓。
如果这一切都是真的,那就引出了一些问题:
编辑:好的附加资源:http://www.tutorialspoint.com/apache_storm/apache_storm_cluster_architecture.htm
首先是一些澄清(基本上你是对的)。
. setNum任务()
决定--如果没有指定,则与parallelism_hint
(设置执行程序的数量)相同。回答你的问题:
什么让 topology(拓扑)可以运行: worker 进程, executors(执行器)和 tasks(任务) Storm 区分以下 3 个主要的实体, 它们在 Storm 集群中用于实际的运行 topology(拓扑): Worker 进程 Executors(线程) Tasks 这是一个简单的例子, 以说明他们之间的关系 一个 worker 进程 执行一个 topology(拓扑)的子集
我正在使用从2个Kafka主题中消费,每个主题都有6个分区。喷口进入单个螺栓以解压缩相关字节,然后进入第二个螺栓以进一步处理。 当我看到storm-ui的时候,这些数字没有多大意义,我希望有人能给我一些启示。 > Kafka的口水说它“收集”了3600个元组,失败了73M个元组。再看下一组的螺栓,我看到有的已经顶起了73米,有的已经顶起了1.3米(没有出现故障),而有的已经顶起了1.3米(没有出现
我正在尝试使用Eclipse在Linux中运行Storm启动示例。我收到以下错误和函数从未被调用。 错误: 我的拓扑类: 我正在虚拟机环境中工作,所以不知道这是否是由于安装了Zookeeper。有什么想法吗?
要开发 topology, 您将需要您的类路径上的 Storm jar. 您应该在项目的类路径中包含未打包的 jar, 或者使用 Maven 将 Storm 包含为开发依赖项. Storm 托管在 Maven Central. 要将 Storm 作为开发依赖项包含在项目中, 请将以下内容添加到 pom.xml 中: <dependency> <groupId>org.apache.storm
我需要用Storm处理成批的元组。我的最后一个bolt必须等到拓扑接收到整个批处理之后才能进行一些处理。为了避免混淆--对我来说,批处理是一组N条消息,它们是实时的,这个术语不需要与批处理(Hadoop)联系在一起。即使2条消息也可以是一批。 阅读Storm的文档是否可以说Storm不支持这种批处理(实时的批处理=N条消息)? 所以我的问题是给你们,我亲爱的Storm大师们,这个拓扑是不是设计得很
一、简介 Storm-Redis 提供了 Storm 与 Redis 的集成支持,你只需要引入对应的依赖即可使用: <dependency> <groupId>org.apache.storm</groupId> <artifactId>storm-redis</artifactId> <version>${storm.version}</version> <typ