【问题标题】:Does a port in supervisor.slots.ports translate to one physical JVM?supervisor.slots.ports 中的端口是否转换为一个物理 JVM?
【发布时间】:2016-10-13 22:15:29
【问题描述】:

来自storm docs

supervisor.slots.ports:“对于每台工作机器,您可以使用此配置配置在该机器上运行的工作人员数量。每个工作人员使用单个端口来接收消息,并且此设置定义了哪个端口开放使用。如果你在这里定义五个端口,那么 Storm 将分配最多五个工作人员在这台机器上运行。"

来自storm concepts

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 stormjps -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


    【解决方案1】:

    一个工作槽相当于一个 JVM 槽。仅在部署拓扑时才占用插槽。

    您可能在工作人员实际开始之前检查了流程。检查 Storm UI 以确保拓扑已启动、正在运行并正在处理数据。如果不是,则使用日志查看器查找错误。由于未捕获的异常,工作人员可能会崩溃。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-17
      • 1970-01-01
      相关资源
      最近更新 更多