在上一篇博客(Storm实时大数据处理(一))中,我介绍了Storm的基本概念和原理,本文我们开始基于Storm提供的API开发自己的应用程序。入门Storm应用程序开发很简单,这得益于设计者为我们精心设计的简单API。
一、搭建开发环境
在生产环境中,Storm集群运行在基于Linux操作系统的分布式集群中,可喜的是,Storm提供了本地模式(Local Mode)来方便开发者开发Storm Topology,而且本地模式支持Windows操作系统,因此搭建一个本地模式的Storm开发环境很简单。在已经搭建好的Java开发环境中,在Eclipse中安装配置好Maven项目管理工具即可,就这么简单,一步到位!
二、新建项目
在Eclipse中新建一个Maven Project,新建成功后,项目里面会有一个pom.xml文件,要开发Storm应用程序,需要Storm的jar包,之前的做法可能是自己去下载Storm的jar包,然后再导入到自己的项目中,有了Maven以后,这一切被彻底革命掉了,需要使用任何第三方jar包,直接去Maven中央仓库搜索一下,然后把依赖复制到pom.xml文件中即可,Maven会帮我们管理好项目依赖的jar包。Storm现在已经有很多版本了,在Maven中央仓库搜索以后,自己选择一个Release稳定版即可。我使用的是Storm 0.9.3版本,加入Storm依赖以后的pom.xml文件内容如下:
<pre name="code" class="html"><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.yistory</groupId>
<artifactId>WordCount</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>WordCount</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.storm/storm-core -->
<dependency>
<groupId>org.apache.storm</groupId>
<artifactId>storm-core</artifactId>
<version>0.9.3</version>
</dependency>
</dependencies>
</project>
三、编写Storm代码
本项目的功能就是统计生成的句子中各个单词出现的次数,业务逻辑很简单,我们的重点是关注怎么开发Storm应用程序。开发Storm应用程序的过程,就是搭建一个拓扑的过程,其实就是构造一个有向无环图。有向无环图由结点和有向边组成,而在Storm中,结点就是Spout或者Bolt,而边就是Spout和