[英]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.