Storm最基本的依赖组件是zookpeeper 3.4.9, Java 1.8.112,同时需要安装python或者其他脚本以支持mutillanguage,但是并不是必须的.
1.安装zookeeper
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz tar xvf zookeeper-3.4.9.tar.gz cd zookeeper-3.4.9 cp conf/zoo_sample.cfg conf/zoo.cfg
设置下环境变量
export ZOOKEEPER_HOME=/opt/zookeeper/zookeeper-3.4.9 export JAVA_HOME=/usr/local/jdk export PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
然后就可以启动zookeeper了
zkServer.sh start
可以运行下zkCli.sh,测试下zookeeper是否可用
2.安装storm
wget http://mirrors.cnnic.cn/apache/storm/apache-storm-1.0.2/apache-storm-1.0.2.zip unzip apache-storm-1.0.2.zip cd apache-storm-1.0.2
修改conf/storm.yaml如下
storm.zookeeper.servers: - "127.0.0.1" nimbus.host: "192.168.24.57" storm.local.dir: "/root/storm/workdir" java.library.path: "/usr/local/lib:/opt/local/lib:/usr/lib" topology.debug: "true"
然后将storm/bin加入环境变量
export STORM_HOME=/opt/apache-storm-1.0.2 export PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$STORM_HOME/bin:$PATH
启动storm
storm nimbus & storm supervisor & storm ui &
jps可以看到如下进程,而且日志也没有报错。基本上就ok了,可以提交任务在storm环境中跑了
14157 core 14106 QuorumPeerMain 30978 Jps 14144 supervisor 13995 nimbus
3.提交拓扑的代码
storm jar suggestion-1.0.2.jar org.magicwall.topoplogy.SuggestionTopology 1
杀死拓扑
storm kill suggestion
4.FAQ
出现“org.apache.storm.utils.NimbusLeaderNotFoundException: Could not find leader nimbus from seed hosts [localhost]. Did you specify a valid list of nimbus”
检查你的首选DNS的反解是否正常,特别在本地,需要将127.0.0.1 localhost放在hosts的首位
还有就是到zoopeeper上把storm节点删掉,重启zookeeper
zkCli.cmd
使用rmr命令删除/storm节点
rmr /storm