1)下载twitter4j :twitter4j-2.2.6.zip(http://pan.baidu.com/s/1bzSO3),并解压unzip twitter4j-2.2.6.zip
2)使用eclipse建立java project。追加twitter4j和storm的jar文件:
File-> New -> Java Project ->起项目名-> Next -> Libraries -> add External JARs...->追加twitter4j和storm的jar文件(
twitter4j-
{version}/lib/*.jar,
storm-{version}/lib/*.jar,storm-{version}/storm-{version}.jar
-> Finsh
或者可以在建java 项目完成后添加twitter4j和storm的jar文件:
项目名-> 右键->properties->java build path->Libraries -> add External JARs->追加twitter4j和storm的jar文件
3)导入storm-starter
File -> Import -> General -> File System -> Next -> Browse(From directory) -> storm-starter/src/jvm/storm -> Browse(Info floder) -> 项目名/src -> OK -> “storm” 和 “Create top-level folder”前打勾 -> Finish
4)把配置文件storm.yaml加载到项目的src下。
完成后eclipse中项目显示如下:
但运行storm.starter.WordCountTopology程序会报如下错误:
2128 [Thread-22] ERROR backtype.storm.util - Async loop died!
java.lang.RuntimeException : Error when launching multilang subprocess
Caused by: java.io.IOException: Cannot run program "python" (in directory "/tmp/add60cdb-20da-4f1e-a2ae-c14e0eafa200/supervisor/stormdist/word-count-1-1382945411/resources"): java.io.IOException: error=2, No such file or directory
Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory
2130 [Thread-22] ERROR backtype.storm.daemon.executor -
java.lang.RuntimeException : Error when launching multilang subprocess
Caused by: java.io.IOException: Cannot run program "python" (in directory "/tmp/add60cdb-20da-4f1e-a2ae-c14e0eafa200/supervisor/stormdist/word-count-1-1382945411/resources"): java.io.IOException: error=2, No such file or directory
Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory
这是因为wordcount程序需要用到python脚本,解决方法如下
追加源文件storm-start/multilang/resources(python 文件word count用),右击src -> Import -> General -> File System -> Next -> Browse(From directory) -> storm-starter/multilang/resources -> Browse(Info floder) -> 项目名-> OK -> “resources”和“Create top-level folder”前打勾 -> Finish,右击resources->Build Path
->Include
完成后eclipse中项目显示如下:
点Run执行storm.starter.WordCountTopology程序结果如下: