[英]Assign strictly one special bolt on each machine in storm cluster
我想在群集中的每台计算机上启动特殊螺栓。
Storm具有可插入的调度程序,但是文档非常少。 虚名只有一个可以理解的例子 。 如何使用IScheduler
实现此模式?
例
我们有TCPBolt
,它侦听端口TCPBolt
并行性==群集大小。 我们需要在每台机器上启动该螺栓的一个实例。
该示例和源代码提供了足够的演示代码来执行此操作。
首先,您需要将TCPBolt的任务号设置为cluser的主机号。
然后在您的IScheduler隐式中,使用private Map<String, SchedulerAssignmentImpl> assignments;
检查是否将TCPBolt分配给主机(在SchedulerAssignmentImpl中,使用数据Map<ExecutorDetails, WorkerSlot> executorToSlot;
)
最后,如果未分配,则使用以下代码进行分配
// re-get the aviableSlots
availableSlots = cluster.getAvailableSlots(specialSupervisor);
// since it is just a demo, to keep things simple, we assign all the
// executors into one slot.
cluster.assign(availableSlots.get(0), topology.getId(), executors);
这只是一个粗略的想法。 希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.