在storm集群环境下发布Topology

storm的topology设计和开发就略过了。本章主要来说说如何在storm的集群环境中,通过storm的管理命令来发布和管理集群中的topology。

 

1、打包

打包插件是使用maven提供的maven-shade-plugin,详细见maven-shade-plugin

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-shade-plugin</artifactId>
	<version>2.4</version>
	<executions>
		<execution>
			<phase>package</phase>
			<goals>
				<goal>shade</goal>
			</goals>
			<configuration>
				<filters>
					<filter>
						<artifact>*:*</artifact>
						<excludes>
							<exclude>META-INF/*.SF</exclude>
							<exclude>META-INF/*.DSA</exclude>
							<exclude>META-INF/*.RSA</exclude>
						</excludes>
					</filter>
				</filters>
				<transformers>
					<!--下面的这个transformer完全是为了发布topology的时候不提供程序入口而配置的,意思就是打包成一个可执行的jar包,但通常我们不需要这样配置,因为一个jar包里通常都会有很多个topology-->
					<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
						<!--程序入口类,隐私部分用XXX表示-->
						<mainClass>com.XXX.storm.XXXTopology</mainClass>
					</transformer>
					<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
						<resource>META-INF/spring.handlers</resource>
					</transformer>
					<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
						<resource>META-INF/spring.schemas</resource>
					</transformer>
				</transformers>
			</configuration>
		</execution>
	</executions>
</plugin>

2、发布

首先把打好的jar包上传到storm集群的主结点(nimbus结点),然后使用storm命令进行topology发布。

没有配置storm命令环境变量,切换到storm的bin目录执行:

./storm jar /opt/libs/storm-0.0.1-SNAPSHOT.jar com.XXX.storm.XXXTopology [参数]

配置了storm命令环境变量,直接执行:

storm jar /opt/libs/storm-0.0.1-SNAPSHOT.jar com.XXX.storm.XXXTopology [参数]

 

注意:参数是可选的,通常会把Topology的名称和Num workers等,以参数的形式赋值。例如:storm jar /opt/libs/storm-0.0.1-SNAPSHOT.jar com.XXX.storm.XXXTopology TopologyName

 

3、检查

发布后,会提示INFO  backtype.storm.StormSubmitter - Finished submitting topology: XXX-topology等信息表示topology发布成功,在storm ui界面的topology summary列表里面也能看到刚才我们提交的topology,到此表示topology成功发布了。

 

你可能感兴趣的:(集群,storm,topology,spout,bolt)