最近研究分布式实时计算与离线计算。先从实时计算开始。twitter开源的storm是一个强大的实时计算工具。就最近研究心得记录,以便避免大家走同样的弯路。
一、storm环境搭建
其安装和配置方法在网上有很多,不再本文中阐述。只是列出在整个环境部署中应该注意的问题。
1. 安装jzmq时错误
遇到make错误信息:
make[1]: *** No rule to make target `classdist_noinst.stamp',
解决方法:手动创建classdist_noinst.stamp空文件。
touch src/classdist_noinst.stamp
遇到make错误信息:
error: cannot access org.zeromq.ZMQ
class file for org.zeromq.ZMQ not found
解决方法:手动编译,然后重新make即可通过。
cd src
javac -d . org/zeromq/*.java
cd ..
2 storm启动时报no jzmq in java.library.path错误
原因是找不到jzmq,默认情况下在执行install_zmq.sh时,那些.so文件安装路径在/usr/local/lib,但是实际安装时可能装在其他的路径下了。
解决方法:在storm.yaml中添加:
java.library.path: "/opt/storm/jzmq/lib:/opt/storm/zeromq/lib:/usr/local/lib:/opt/local/lib:/usr/lib"
3 when submit topology in supervisor,notify connectting refused,shoud check ~/.storm/storm.yaml is existed, becase of shell storm/bin/storm config the file path.
4 when submit topology,should package dependence jar,and exclude storm's jar.
5 maven repository and dependency can be found : search.maven.org
6 resource local dir: storm.local.dir-supervisor.(context.getCodeDir())