我有一个奇怪的问题。我使用apache 0.10.0风暴版和3.5.1 zookeeper版。我在同一个网络上有4个不同的vms。
我开始:
zoohost at localhost:2181,1st vm(ip XXX.XXX.5.60)
<>> nimbus&amp; ui,2nd vm(ip XXX.XXX.5.61)主管1在3日vm和主管4在4日vm(ips XXX.XXX.5.67&amp; XXX.XXX.5.68)。
这是Nimbus的storm.yaml:
storm.zookeeper.servers:
- "XXX.XXX.5.60"
nimbus.host: "XXX.XXX.5.61"
storm.local.dir: "/home/stresstest/data"
这是主管的风暴:
storm.zookeeper.servers:
- "XXX.XXX.5.60"
nimbus.host: "XXX.XXX.5.61"
storm.local.dir: "/home/stresstest/data"
supervisor.slots.ports:
- 6700
正如我看到zookeeper通常接受连接:
2015-11-27 04:16:06,438 [myid:] - INFO [SyncThread:0:ZooKeeperServer @ 678] - 已建立的会话 0x1000000d4ad000b,客户端协商超时20000 /XXX.XXX.5.67:41315 2015-11-27 04:16:06,439 [myid:] - INFO [SyncThread:0:ZooKeeperServer @ 678] - 已建立的会话 0x1000000d4ad000c,客户端协商超时20000 /XXX.XXX.5.68:59833
如上所述,每位主管都有1名工人。在UI的网站上,我看到我有2个主管和2个总插槽。当我向Nimbus提交拓扑时,它会消耗1名工作人员。
问题从这里开始。当我重新平衡拓扑以消耗2个工作者时,它会这样做:
Id Host Uptime Slots Used slot Version
b38878ae-8eea-4265-9c98-2b6db1ef0bb0 vlan5-dhcp105.xxx.gr 18m 31s 1 1 0.10.0
d463df62-5d18-460f-86f4-18dff93f544a vlan5-dhcp105.xxx.gr 13m 55s 1 1 0.10.0
拓扑结构似乎使用了2个工作人员,但它们是同一个工作人员。 两个工人/主管的工人主人似乎是相同的。因此,当我向Nimbus发送数据时,只有1名工作人员在处理,而另一名正在等待数据(两名工作人员都下载了拓扑)。为什么会这样?
答案 0 :(得分:0)
我在项目中遇到了同样的问题,结果发现,我们不能通过重新平衡命令来增加工人数量。重新平衡仅用于减少我们使用的工人数量。例如,在拓扑启动器中,将“工作者数量”设置为2,并且可以使用re-balance -n 1命令将拓扑重新平衡为1个工作者。此外,还可以使用re-balance命令增加或减少并行数提示(执行程序)。
答案 1 :(得分:0)
可能是因为为nimbus和supervisor使用相同的storm.local.dir路径只是改变你的主管中的路径使用不同的路径并尝试重新平衡它我认为它会起作用。
答案 2 :(得分:0)
我设法解决了这个问题。两个主管都有相同的主机名(它通过Xen Hypervisor的初始化),所以我相信vms彼此冲突。当我改变一个vm的主机名时,它起作用了。