Storm(三) storm-starter

原文链接storm-starter

storm-starter就是Storm工程里边一个专门用来学习使用Storm的模块。

Getting started

Prerequisites

首先,在你的用户PATH下,你要安装有java和git,并且storm-starter中有两个例子使用了Python and Ruby。
其次,确保你已经下载了storm-starter的源码。Git/GitHub的初学者可以参考:
$ git clone git://github.com/apache/storm.git && cd storm/examples/storm-starter

storm-starter overview

storm-starter包含了一系列例子。如果这是你首次使用Storm,请先查看以下topologies:
ExclamationTopology: 最基本的topology
WordCountTopology: 多语言版本的最基本的topology,其中一个bolt使用Python实现。
ReachTopology: 基于Storm的一个复杂DRPC的例子

在你熟悉这些topologies之后,可以看一看src/jvm/org/apache/storm/starter/目录下的其他topopologies,例如RollingTopWords,可以学一些高级的实现。如果你想更多的了解Storm是如何工作的,请前去Storm project page。

Using storm-starter with Maven

Build and install Storm jars locally

如果你使用的是Storm的最新开发板,例如从git上clone了Storm,那么你必须先执行一次build。否则你将会遇到错误提示: "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

这个命令会在本地生成Storm并把jar文件安装到你的 $HOME/.m2/repository/。当你运行Maven的命令生成和运行storm-starter(后边会介绍),Maven将能够在本地Maven repository($HOME/.m2/repository)中找到相应的Storm版本。

Packaging storm-starter for use on a Storm cluster

使用如下命令打包一个jar套件:
$ mvn package
这将打包你的代码和依赖到一个"uberjar" (or "fat jar"),文件路径在target/storm-starter-{version}.jar。
uberjar的文件名例子:target/storm-starter-0.9.3-incubating-SNAPSHOT.jar

你可以通过storm CLI工具提交(运行)uberjar中的topology:

  • 例子1:
    本地模式下运行ExclamationTopology
    storm jar target/storm-starter-*.jar org.apache.storm.starter.ExclamationTopology
  • 例子2:
    远程/集群模式下运行RollingTopWords,使用名称"production-topology"
    storm jar storm-starter-*.jar org.apache.storm.starter.RollingTopWords production-topology remote

多语言编写的topologies也可以提交并运行,比如WordCountTopology

以本地或远程模式提交拓扑的对比:取决于拓扑中的实际代码,对RollingTopWords来说,可以通过命令行参数来设置。不同于RollingTopWords,ExclamationTopology总是提交到远程集群(硬编码在程序中)或者通过自定义配置文件来设置。 类似的,诸如拓扑名称等选项 也可能是用户可配置或硬编码的,所以请确认你选择的拓扑是如何设置和配置的。

Running unit tests

mvn test

Using storm-starter with IntelliJ IDEA

Importing storm-starter as a project in IDEA

在IntelliJ IDEA中执行如下步骤可以把storm-starter导入为一个新的工程。

  • Open File > Import Project... 导航到storm-starter目录或者你的storm克隆的目录(比如~/git/storm/examples/storm-starter)。
  • 选择Import project from external model,选择"Maven"并点击Next。
  • 接下来,选中Import Maven projects automatically,其他选项默认,点击Next。
  • 确保在profiles配置中选中intellij profile,这对于确保依赖正确设置很重要。
  • 在下一个屏幕中点击Next。
  • 选择JDK,下一步。
    建议使用JDK 7及以上版本。
    最好使用Oracle JDK而不是OpenJDK。
  • 现在可以设置工程的名字,默认名字是"storm-starter"。点击“Finish”
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,212评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,178评论 6 342
  • 原文链接Storm Tutorial 本人原创翻译,转载请注明出处 这个教程内容包含如何创建topologies及...
    quiterr阅读 5,627评论 0 6
  • 背景 OpenShift是目前比较主流的基于Kubernetes的容器云解决方案,OpenShift在kubern...
    小白_18M阅读 4,987评论 0 5
  • 大家是不是感觉到,现在的生活条件越来越好了,可是身体却越来越差了?很多年轻人走上6楼都会累的上气不接下气,据我10...
    唯佰康刘岩阅读 2,790评论 0 0

友情链接更多精彩内容