原文鏈接storm-starter
storm-starter就是Storm工程里邊一個(gè)專門用來學(xué)習(xí)使用Storm的模塊捎迫。
Getting started
Prerequisites
首先臭杰,在你的用戶PATH下,你要安裝有java和git,并且storm-starter中有兩個(gè)例子使用了Python and Ruby并淋。
其次醋安,確保你已經(jīng)下載了storm-starter的源碼。Git/GitHub的初學(xué)者可以參考:
$ git clone git://github.com/apache/storm.git && cd storm/examples/storm-starter
storm-starter overview
storm-starter包含了一系列例子滥嘴。如果這是你首次使用Storm木蹬,請(qǐng)先查看以下topologies:
ExclamationTopology: 最基本的topology
WordCountTopology: 多語(yǔ)言版本的最基本的topology,其中一個(gè)bolt使用Python實(shí)現(xiàn)氏涩。
ReachTopology: 基于Storm的一個(gè)復(fù)雜DRPC的例子
在你熟悉這些topologies之后届囚,可以看一看src/jvm/org/apache/storm/starter/目錄下的其他topopologies,例如RollingTopWords是尖,可以學(xué)一些高級(jí)的實(shí)現(xiàn)意系。如果你想更多的了解Storm是如何工作的,請(qǐng)前去Storm project page饺汹。
Using storm-starter with Maven
Build and install Storm jars locally
如果你使用的是Storm的最新開發(fā)板蛔添,例如從git上clone了Storm,那么你必須先執(zhí)行一次build兜辞。否則你將會(huì)遇到錯(cuò)誤提示: "Could not resolve dependencies for project org.apache.storm:storm-starter:<storm-version>-SNAPSHOT".
# Must be run from the top-level directory of the Storm code repository
$ mvn clean install -DskipTests=true
這個(gè)命令會(huì)在本地生成Storm并把jar文件安裝到你的 $HOME/.m2/repository/迎瞧。當(dāng)你運(yùn)行Maven的命令生成和運(yùn)行storm-starter(后邊會(huì)介紹),Maven將能夠在本地Maven repository($HOME/.m2/repository)中找到相應(yīng)的Storm版本逸吵。
Packaging storm-starter for use on a Storm cluster
使用如下命令打包一個(gè)jar套件:
$ mvn package
這將打包你的代碼和依賴到一個(gè)"uberjar" (or "fat jar")凶硅,文件路徑在target/storm-starter-{version}.jar。
uberjar的文件名例子:target/storm-starter-0.9.3-incubating-SNAPSHOT.jar
你可以通過storm CLI工具提交(運(yùn)行)uberjar中的topology:
- 例子1:
本地模式下運(yùn)行ExclamationTopology
storm jar target/storm-starter-*.jar org.apache.storm.starter.ExclamationTopology
- 例子2:
遠(yuǎn)程/集群模式下運(yùn)行RollingTopWords扫皱,使用名稱"production-topology"
storm jar storm-starter-*.jar org.apache.storm.starter.RollingTopWords production-topology remote
多語(yǔ)言編寫的topologies也可以提交并運(yùn)行足绅,比如WordCountTopology
捷绑。
以本地或遠(yuǎn)程模式提交拓?fù)涞膶?duì)比:取決于拓?fù)渲械膶?shí)際代碼,對(duì)RollingTopWords來說氢妈,可以通過命令行參數(shù)來設(shè)置粹污。不同于RollingTopWords,ExclamationTopology總是提交到遠(yuǎn)程集群(硬編碼在程序中)或者通過自定義配置文件來設(shè)置首量。 類似的壮吩,諸如拓?fù)涿Q等選項(xiàng) 也可能是用戶可配置或硬編碼的,所以請(qǐng)確認(rèn)你選擇的拓?fù)涫侨绾卧O(shè)置和配置的加缘。
Running unit tests
mvn test
Using storm-starter with IntelliJ IDEA
Importing storm-starter as a project in IDEA
在IntelliJ IDEA中執(zhí)行如下步驟可以把storm-starter導(dǎo)入為一個(gè)新的工程鸭叙。
- Open File > Import Project... 導(dǎo)航到storm-starter目錄或者你的storm克隆的目錄(比如~/git/storm/examples/storm-starter)。
- 選擇Import project from external model生百,選擇"Maven"并點(diǎn)擊Next递雀。
- 接下來,選中Import Maven projects automatically蚀浆,其他選項(xiàng)默認(rèn)缀程,點(diǎn)擊Next。
- 確保在profiles配置中選中intellij profile市俊,這對(duì)于確保依賴正確設(shè)置很重要杨凑。
- 在下一個(gè)屏幕中點(diǎn)擊Next。
- 選擇JDK摆昧,下一步撩满。
建議使用JDK 7及以上版本。
最好使用Oracle JDK而不是OpenJDK绅你。 - 現(xiàn)在可以設(shè)置工程的名字伺帘,默認(rèn)名字是"storm-starter"。點(diǎn)擊“Finish”