storm 常见问题解决

1. Zookeeper+ metaq-1.4.6 和storm-0.9.4 程序在eclipse 运行出现

  Will not attempt to authenticate using SASL (java.lang.SecurityException: 无法定位登录配置)

 使用本地模式: 

LocalCluster cluster = new LocalCluster();

cluster.submitTopology("test", config, tbuilder.createTopology());  

运行没有关系的。

 

2.worker-xxxx.log 显示 2015-04-30 08:31:53 worker [WARN] Received invalid 

messages for unknown tasks. Dropping...  造成数据丢失问题

该问题是host配置问题,解析host出问题

解决方案:

在每台集群机上执行 hostname pc-name (说明 pc-name 是定义的集群名称)

        vi /etc/sysconfig/network 

修改 HOSTNAME= pc-name 

效果如下图:


vi /etc/hosts 

添加如下信息:


 

3.StormUI上面nimbus和supervisor都显示127.0.0.1 或 localhost

解决办法同2

 

4.topologykill后,kill supervisor或nimbus,立刻启动,有时会自动shutdown

supervisor和nimbus启动、关闭后,zookeeper上信息会有同步。每次启动,会尝试恢复、停止上一次的task。对于supervisor,可以等到StormUI上面topology完全停止后,再重启,可避免该问题。

5.如何查找某个spout,bolt的运行log?

Storm UI上找到该topology,点击进去后找到目标(spout或bolt 等), 点击进去,找到 Executor 栏,里面有Host和Port,其实就是执行该component的task的worker。每个port会对应logs目录下worker-<port>.log的一个log文件,直接去该host上找到该文件查看即可。

注:

Storm有个logviewer的功能,即在每个superviosr上启动 ./storm logviewer 后,就可以在stormUI里面点击那个port后直接查看静态的log。

如果打不开,检查supervisor上logs/logviewer.log,看是否有错。然后看打开的URL里面host名在本地是否能正确的解析为目标IP,如果不能就将 hostname 修改为IP 即可查看(集群环境中只能适合nimbus)。



 将 nimbus 修改为对应 PC 的IP 效果如下:



 

猜你喜欢

转载自wangmengbk.iteye.com/blog/2215140