如何为clojure中的风暴螺栓设置“setnumtasks”?

j5fpnvbx  于 2021-06-21  发布在  Storm
关注(0)|答案(2)|浏览(202)

我想在我的风暴拓扑中设置一个螺栓的任务数。但我在clojure找不到办法。我在文档中也没有看到螺栓规格的任何内容。我遗漏了什么吗?为了微调我的应用程序,我需要一种方法来设置任务的数量。这可能吗?
[1] : http://storm.apache.org/releases/0.10.0/clojure-dsl.html

bgtovc5b

bgtovc5b1#

我相信在调用bolt spec like时,可以在配置Map中传递拓扑任务的数量

(bolt-spec {"1" :shuffle} geocode-lookup :p 8 :conf {TOPOLOGY_TASKS 64})

下面是一个拓扑示例:

(defn heatmap-topology []
  (topology
   {"1" (spout-spec checkins :p 4)}

   {"2" (bolt-spec {"1" :shuffle} geocode-lookup :p 8 :conf {TOPOLOGY_TASKS 64})
    "3" (bolt-spec {"2" :shuffle} time-interval-extractor :p 4)
    "4" (bolt-spec {"3" ["time-interval" "city"]} heatmap-builder :p 4)
    "5" (bolt-spec {"4" :shuffle} persistor :conf {TOPOLOGY_TASKS 4})}))

我也在想同样的事情,结果发现: org.apache.storm.clojure/bolt-spec 是的别名 org.apache.storm.thrift/mk-bolt-spec 链接 bolt-spec 定义为 org.apache.storm.util/defnk 链接,所以它返回一个类似 {:obj bolt :inputs inputs :p parallelism-hint :conf conf} conf默认为
nil org.apache.storm.clojure/bolt-spec 是的别名 org.apache.storm.thrift/mk-topology 还有电话 org.apache.storm.topology.TopologyBuilder.addConfigurations 经过 conf 作为唯一的论据。链接
也, setNumTasks 简单的电话 addConfiguration(Config.TOPOLOGY_TASKS, val) 链接
最后,设置一个螺栓喷口的任务数的正确常数是 TOPOLOGY_TASKS 链接

sycxhyv7

sycxhyv72#

根据clojure dsl页面:
要创建拓扑配置,使用 backtype.storm.config 为所有可能的配置定义常量的命名空间。这些常量与config类中的静态常量相同,只是使用了破折号而不是下划线。例如,下面的拓扑配置将worker数设置为15,并在调试模式下配置拓扑:

{TOPOLOGY-DEBUG true
 TOPOLOGY-WORKERS 15}

从storm文档中(查找名为“任务数”的部分):

任务数

描述:每个组件要创建多少个任务。
配置选项: TOPOLOGY_TASKS 如何在代码中设置(示例): ComponentConfigurationDeclarer#setNumTasks() 下面是一个示例代码段,用于实际显示这些设置:

topologyBuilder.setBolt("green-bolt", new GreenBolt(), 2)
               .setNumTasks(4)
               .shuffleGrouping("blue-spout");

看起来像是用 backtype.storm.config 命名空间和定义 TOPOLOGY-WORKERS 相当于打电话 setNumTasks .

相关问题