更新时间:2023-04-10 GMT+08:00

使用客户端提交Storm拓扑

操作场景

用户可以根据业务需要,在集群的客户端中提交Storm拓扑,持续处理用户的流数据。启用Kerberos认证的集群,需要提交拓扑的用户属于“stormadmin”“storm”组。

前提条件

已刷新客户端。

操作步骤

  1. 根据业务情况,准备好客户端,登录安装客户端的节点。

    请根据客户端所在位置,参考安装客户端章节,登录安装客户端的节点。

  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
    • 如果需要拓扑支持采样消息,则还需要增加参数“topology.debug”“topology.eventlogger.executors”
    • 拓扑如何处理数据是拓扑自身行为。样例拓扑随机生成字符并分隔字符串,需要查看处理情况时,请启用采样功能并参见查看Storm拓扑日志

  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
    • 登录认证用户必须与所加载环境变量(component_env)一 一对应,否则使用storm命令提交拓扑任务出错。
    • 加载客户端环境变量且对应用户登录成功后,该用户可以在任意storm客户端下执行storm命令来提交拓扑任务,但提交拓扑命令执行完成后,提交成功的拓扑仍然在用户所对应的Storm集群中,不会出现在其他Storm集群中。
    • 如果修改了集群域名,需要在提交拓扑前重新设置域名信息,进入cql语句执行命令,例如:set "kerberos.domain.name" = "hadoop.huawei.com"

  9. 执行以下命令,查看Storm中的拓扑。启用Kerberos认证的集群,只有属于“stormadmin”“storm”的用户可以查看所有拓扑。

    storm list