在 Apache Storm 中,Worker 和 Executor 是两个重要的概念,它们在任务的并行执行中扮演着不同的角色。
setNumWorkers
方法在 Topology 配置中设置 Worker 的数量。例如:Config config = new Config();
config.setNumWorkers(3); // 设置 3 个 Worker
setParallelismHint
方法在组件(Spout 或 Bolt)的配置中设置 Executor 的数量。例如:builder.setBolt("bolt1", new MyBolt(), 2).shuffleGrouping("spout1");
在这个例子中,MyBolt
组件将会有 2 个 Executor。
以下是一个完整的配置示例,展示了如何设置 Worker 和 Executor 的数量:
import org.apache.storm.Config;
import org.apache.storm.LocalCluster;
import org.apache.storm.topology.TopologyBuilder;
import org.apache.storm.topology.basic.BasicBolt;
public class MyTopology {
public static void main(String[] args) {
// 创建 Topology 构建器
TopologyBuilder builder = new TopologyBuilder();
// 设置 Spout
builder.setSpout("spout1", new MySpout(), 2); // 2 个 Executor
// 设置 Bolt
builder.setBolt("bolt1", new MyBolt(), 4).shuffleGrouping("spout1"); // 4 个 Executor
// 设置 Topology 配置
Config config = new Config();
config.setNumWorkers(3); // 3 个 Worker
// 提交 Topology
LocalCluster cluster = new LocalCluster();
cluster.submitTopology("my-topology", config, builder.createTopology());
}
}
在这个示例中:
setNumWorkers(3)
设置了 3 个 Worker。setSpout("spout1", new MySpout(), 2)
设置了 2 个 Executor 来运行 MySpout
。setBolt("bolt1", new MyBolt(), 4)
设置了 4 个 Executor 来运行 MyBolt
。原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。