【问题标题】:where can I find the default value for this storm configurable `topology.worker.timeout.secs`我在哪里可以找到这个风暴可配置`topology.worker.timeout.secs`的默认值
【发布时间】:2021-06-23 17:38:35
【问题描述】:

我在这里找到声明:https://github.com/apache/storm/blob/3f96c249cbc17ce062491bfbb39d484e241ab168/storm-client/src/jvm/org/apache/storm/Config.java#L1161 但无法从 yaml (https://github.com/apache/storm/blob/b6e7d0355e0397b8acc566961ed31279338998e1/conf/defaults.yaml) 中找到其默认值。 我正在尝试在我的设置中调整此参数,但需要弄清楚什么是“推荐”值开始。

【问题讨论】:

  • 如果我的回答对您有帮助,如果您能接受这个问题,我会很高兴。 :)
  • 当然,我将从worker. max.timeout_secs 配置开始,因为我也没有在整个代码库中找到topology.worker.timeout.secs 的引用。

标签: apache-storm


【解决方案1】:

topology.worker.timeout.secs 上的评论说:

在supervisor之前拓扑可配置的worker心跳超时 尝试重新启动工作进程。最大值受约束 WORKER_MAX_TIMEOUT_SECS。当拓扑超时较大时, 以下配置被有效地覆盖: SUPERVISOR_WORKER_TIMEOUT_SECS, SUPERVISOR_WORKER_START_TIMEOUT_SECS, NIMBUS_TASK_TIMEOUT_SECS 和 NIMBUS_TASK_LAUNCH_SECS。

因为我也找不到默认值,所以我查看了nimbus.java:

if (mergedConf.containsKey(Config.TOPOLOGY_WORKER_TIMEOUT_SECS)) {
  int workerTimeoutSecs = (Integer) ObjectReader.getInt(mergedConf.get(Config.TOPOLOGY_WORKER_TIMEOUT_SECS));
  int workerMaxTimeoutSecs = (Integer) ObjectReader.getInt(mergedConf.get(Config.WORKER_MAX_TIMEOUT_SECS));
  if (workerTimeoutSecs > workerMaxTimeoutSecs) {
      ret.put(Config.TOPOLOGY_WORKER_TIMEOUT_SECS, workerMaxTimeoutSecs);
      ...
  }
}

但是这个键不包含在任何地方,当我通过 nimbus 调试并评估该配置时,我得到null,这意味着这个值永远不会设置。

在default.yaml 中查看WORKER_MAX_TIMEOUT_SECS 需要600 秒,所以我认为这可以作为您的起点。

【讨论】:

    猜你喜欢
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多