【发布时间】:2016-10-13 22:15:29
【问题描述】:
来自storm docs:
supervisor.slots.ports:“对于每台工作机器,您可以使用此配置配置在该机器上运行的工作人员数量。每个工作人员使用单个端口来接收消息,并且此设置定义了哪个端口开放使用。如果你在这里定义五个端口,那么 Storm 将分配最多五个工作人员在这台机器上运行。"
Workers:拓扑跨一个或多个工作进程执行。每个工作进程都是一个物理 JVM,并执行拓扑中所有任务的子集。
我的storm.yaml 定义:
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
然后我运行一个拓扑,将topology.workers 设置为 3(kafka-spout-parallelism 设置为 1,solr-bolt-parallelism 设置为 2,没有其他螺栓)。
Storm-ui 还显示我的拓扑运行良好,有 1 个 spout 和 2 个 bolt。
但是当我登录到storm 机器并运行ps -aef | grep storm 或jps -l 时,我在任何地方都看不到worker 的JVM 进程。我看到的只有进程:
机器 1:
jps -l
30675 backtype.storm.daemon.supervisor
30583 backtype.storm.daemon.logviewer
机器 2:
jps -l
6818 backtype.storm.ui.core
6995 backtype.storm.daemon.supervisor
6739 backtype.storm.daemon.nimbus
6904 backtype.storm.daemon.logviewer
storm 不会为每个工作人员创建一个物理 JVM 吗?并且这不会转化为supervisor.slots.ports 中提到的每个端口一个 JVM?
【问题讨论】:
标签: jvm apache-storm