结合Maven使用storm-starter

学会使用Storm!


安装Maven

Maven (最好是版本3.x)的安装可以按照以下的步骤,Maven安装

在本地Build和install Storm jars

如果您正在使用Storm的最新开发版本,例如,通过克隆Storm的git仓库,那么你必须首先在本地构建storm-starter。否则,你会在运行Maven时出现错误,如”Could not resolve dependencies for project org.apache.storm:storm-starter:<storm-version>-SNAPSHOT“。

# 必须从Storm代码库的顶级目录运行
$ mvn clean install -DskipTests=true

这个命令将会在本地构建Storm并且会将所需要的jar包下载到你本地$HOME/.m2/repository/路径中。当你运行Maven命令去构建和运行storm-starter时,Maven将会在本地的Maven仓库$HOME/.m2/repository找到所需的正确Storm版本。

在Storm集群上使用storm-starter

你可以用如下的命令来打包一个可以在Storm集群之上运行的jar包:

$ mvn package

这会将您的代码和所有非Storm依赖项打包成一个单一的“uberjar”(或“fat jar”)在路径target/storm-starter-{version}.jar

uberjar的文件名示例:

>>> target/storm-starter-0.9.3-incubating-SNAPSHOT.jar

您可以通过storm CLI工具向Storm提交(运行)这个uberjar中包含的topology:

# 示例 1: 在本地模式下运行ExclamationTopology(LocalCluster)
$ storm jar target/storm-starter-*.jar org.apache.storm.starter.ExclamationTopology

# 示例 2: 在远程/群集模式下运行RollingTopWords
# 名为"production-topology"
$ storm jar target/storm-starter-*.jar org.apache.storm.starter.RollingTopWords production-topology remote

通过提交,您可以运行使用multilang编写的topologies,例如,WordCountTopology

本地提交topology VS 集群提交topology:
这取决于topology的实际代码,您可以甚至必须告诉Storm是否在本地运行topology(在Storm的内存中LocalCluster实例中)或远程(在“真正的”Storm集群中)。 例如,在RollingTopWords的情况下,可以通过传递命令行参数来完成此操作。
RollingTopWords之外的topologies - 例如ExclamationTopology–可能会有所不同,通过始终提交到远程集群(即您作为用户,无需更改topology代码即可进行硬编码),或者需要用户配置文件,再将topology代码提交到Storm的topology。 类似地,诸如topology名称的其他选项是用户可配置的或被硬编码到topology代码中。 因此,请确保您了解您所选择的topology的结构设置和配置!

运行单元测试

使用下面的Maven命令运行storm-starter附带的单元测试。不幸的是,‘lein test’还没有附带可运行的单元测试。

$ mvn test
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐