簡體   English   中英

在風暴群集中的每台機器上嚴格分配一個特殊的螺栓

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM