推荐答案
在 Storm 的 Remote 模式中,部署拓扑的过程分为以下几个步骤:
打包拓扑代码:首先,将你的 Storm 拓扑代码打包成一个 JAR 文件。可以使用 Maven 或 Gradle 等构建工具来完成这一步骤。
mvn clean package
上传 JAR 文件到 Nimbus 节点:将打包好的 JAR 文件上传到 Storm 集群的 Nimbus 节点。可以使用
scp或其他文件传输工具。scp target/your-topology.jar user@nimbus-host:/path/to/upload/
提交拓扑到集群:使用
storm jar命令将拓扑提交到 Storm 集群。你需要指定 JAR 文件的路径、主类名以及拓扑名称。storm jar /path/to/upload/your-topology.jar com.yourcompany.YourTopologyClass your-topology-name
监控拓扑:提交拓扑后,你可以使用 Storm UI 或命令行工具来监控拓扑的运行状态。
storm list
本题详细解读
1. 打包拓扑代码
在 Remote 模式下,Storm 拓扑代码需要被打包成一个 JAR 文件。这个 JAR 文件包含了所有的依赖项和配置。通常,使用 Maven 或 Gradle 这样的构建工具可以方便地完成打包工作。
// www.javascriptcn.com code example
<!-- Maven 示例 -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>2. 上传 JAR 文件到 Nimbus 节点
Nimbus 是 Storm 集群的主节点,负责协调拓扑的部署和运行。你需要将打包好的 JAR 文件上传到 Nimbus 节点。通常,可以使用 scp 命令来完成这一步骤。
scp target/your-topology.jar user@nimbus-host:/path/to/upload/
3. 提交拓扑到集群
使用 storm jar 命令将拓扑提交到集群。这个命令会启动一个进程,将 JAR 文件上传到 Nimbus,并启动拓扑。
storm jar /path/to/upload/your-topology.jar com.yourcompany.YourTopologyClass your-topology-name
/path/to/upload/your-topology.jar:JAR 文件的路径。com.yourcompany.YourTopologyClass:包含main方法的主类。your-topology-name:拓扑的名称,用于在集群中标识该拓扑。
4. 监控拓扑
提交拓扑后,你可以使用 Storm UI 或命令行工具来监控拓扑的运行状态。Storm UI 提供了一个 Web 界面,可以查看拓扑的运行情况、日志、错误等信息。
storm list
这个命令会列出当前集群中所有正在运行的拓扑及其状态。
通过以上步骤,你可以在 Storm 的 Remote 模式下成功部署和运行你的拓扑。