风暴工人连接

Storm worker connections

我有一个奇怪的问题。我用的是apache 0.10.0 storm版和3.5.1 zookeeper版。我在同一个网络上有 4 个不同的虚拟机。

我开始:

动物园管理员 localhost:2181,第一个虚拟机 (ip XXX.XXX.5.60)

nimbus & ui,第二台虚拟机(ip XXX.XXX.5.61)

第 3 个虚拟机上的主管 1 和第 4 个虚拟机上的主管 4(ips XXX.XXX.5.67 & 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.yaml的监督者:

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] - Established session 0x1000000d4ad000b with negotiated timeout 20000 for client /XXX.XXX.5.67:41315 2015-11-27 04:16:06,439 [myid:] - INFO [SyncThread:0:ZooKeeperServer@678] - Established session 0x1000000d4ad000c with negotiated timeout 20000 for client /XXX.XXX.5.68:59833

正如您在上面看到的,每个主管有 1 个工人。在 UI 的网站上,我看到我有 2 个主管和 2 个总名额。当我向 Nimbus 提交拓扑时,它会消耗 1 个工作人员。

问题从这里开始。当我重新平衡拓扑以消耗 2 个工人时,它会这样做:

Id Host Uptime Slots Used slots 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 个 worker,但它是同一个。 workers/supervisors 的工作主机似乎相同。因此,当我向 Nimbus 发送数据时,只有 1 个 worker 正在处理,另一个正在等待数据(两个 worker 都下载了拓扑)。为什么会这样?

我在我们的项目中遇到了同样的问题,发现我们无法通过重新平衡命令来增加工人的数量。重新平衡仅用于减少我们使用的工人数量。例如,在 Topology Launcher 中,将 worker 数量设置为 2 ,您可以使用 re-balance -n 1 命令将拓扑重新平衡为 1 个 worker。也可以使用重新平衡命令增加或减少并行度提示(执行程序)的数量。

可能是因为使用相同的 storm.local.dir 路径给光轮和主管,只需更改主管中的路径,使用不同的路径并尝试重新平衡它,我认为它会起作用。

我设法解决了这个问题。两个主管有相同的主机名(它是通过 Xen Hypervisor 的初始化传递的),所以我相信 vms 相互冲突。当我更改一个虚拟机的主机名时,它起作用了。