
# 使用客户端提交Storm拓扑
#### 操作场景
用户可以根据业务需要，在集群的客户端中提交Storm拓扑，持续处理用户的流数据。启用Kerberos认证的集群，需要提交拓扑的用户属于"stormadmin"或"storm"组。
#### 前提条件
已刷新客户端。
#### 操作步骤
1. 根据业务情况，准备好客户端，登录安装客户端的节点。 
   请根据客户端所在位置，参考[安装客户端](https://support.huaweicloud.com/usermanual-mrs/mrs_01_24212.html)章节，登录安装客户端的节点。
   
   
2. 执行以下命令，设置拓扑的jar包权限。 
   例如修改"/opt/storm/topology.jar"的权限：
   **chmod 600 /opt/storm/topology.jar**
   
   
3. 执行以下命令，切换到客户端目录，例如"/opt/client"。 
   **cd /opt/client**
   
   
4. 执行以下命令，配置环境变量。 
   **source bigdata_env**
   
   
5. 若安装了Storm多实例，在使用Storm命令提交拓扑时，请执行以下命令加载具体实例的环境变量，否则请跳过此步骤。例如，Storm-2实例： 
   **source Storm-2/** **component_env**
   
   
6. 启用Kerberos认证的集群，执行以下命令认证用户身份。未启用Kerberos认证的集群无需执行。 
   **kinit** ***Storm用户***
   
   
7. MRS 3.x之前版本：执行以下命令，提交Storm拓扑。 
   **storm jar** *拓扑包路径 拓扑Main方法的类名称 拓扑名称*
   界面提示以下信息表示提交成功：
   ```
   Finished submitting topology: topo1
   ```
   ![](https://support.huaweicloud.com/cmpntguide-mrs/public_sys-resources/note_3.0-zh-cn.png)
   - 如果需要拓扑支持采样消息，则还需要增加参数"topology.debug"和"topology.eventlogger.executors"。
   
   - 拓扑如何处理数据是拓扑自身行为。样例拓扑随机生成字符并分隔字符串，需要查看处理情况时，请启用采样功能并参见[查看Storm拓扑日志](https://support.huaweicloud.com/cmpntguide-mrs/mrs_01_0384.html)。
    
   
   
8. MRS 3.x及后续版本：执行以下命令，提交拓扑任务。 
   **storm jar** *topology-jar-path* *class 入参列表*
   - topology-jar-path：表示拓扑的jar包所在路径。
   
   - class：表示拓扑使用的main方法所在类名称。
   
   - 入参列表：表示拓扑使用的main方法入参。
   
   
   例如，提交WordCount计算的拓扑"/opt/storm/topology.jar"并以拓扑命名作为入参，执行：
   **storm jar /opt/storm/topology.jar com.huawei.storm.example.WordCountTopology topology1**
   显示以下信息表示拓扑提交成功：
   ```
   Finished submitting topology: topology1
   ```
   ![](https://support.huaweicloud.com/cmpntguide-mrs/public_sys-resources/note_3.0-zh-cn.png)
   - 登录认证用户必须与所加载环境变量（component_env）一 一对应，否则使用storm命令提交拓扑任务出错。
   
   - 加载客户端环境变量且对应用户登录成功后，该用户可以在任意storm客户端下执行storm命令来提交拓扑任务，但提交拓扑命令执行完成后，提交成功的拓扑仍然在用户所对应的Storm集群中，不会出现在其他Storm集群中。
   
   - 如果修改了集群域名，需要在提交拓扑前重新设置域名信息，进入cql语句执行命令，例如**：set "kerberos.domain.name" = "** *hadoop.huawei.com"* **。**
    
   
   
9. 执行以下命令，查看Storm中的拓扑。启用Kerberos认证的集群，只有属于"stormadmin"或"storm"的用户可以查看所有拓扑。 
   **storm list**
   
   
 
