使用客户端提交Storm拓扑
操作场景
用户可以根据业务需要,在集群的客户端中提交Storm拓扑,持续处理用户的流数据。启用Kerberos认证的集群,需要提交拓扑的用户属于“stormadmin”或“storm”组。
前提条件
已刷新客户端。
操作步骤
- 根据业务情况,准备好客户端,登录安装客户端的节点。
请根据客户端所在位置,参考安装客户端章节,登录安装客户端的节点。
- 执行以下命令,设置拓扑的jar包权限。
例如修改“/opt/storm/topology.jar”的权限:
chmod 600 /opt/storm/topology.jar
- 执行以下命令,切换到客户端目录,例如“/opt/client”。
cd /opt/client
- 执行以下命令,配置环境变量。
source bigdata_env
- 若安装了Storm多实例,在使用Storm命令提交拓扑时,请执行以下命令加载具体实例的环境变量,否则请跳过此步骤。例如,Storm-2实例:
source Storm-2/component_env
- 启用Kerberos认证的集群,执行以下命令认证用户身份。未启用Kerberos认证的集群无需执行。
kinit Storm用户
- MRS 3.x之前版本:执行以下命令,提交Storm拓扑。
storm jar 拓扑包路径 拓扑Main方法的类名称 拓扑名称
界面提示以下信息表示提交成功:
Finished submitting topology: topo1
- 如果需要拓扑支持采样消息,则还需要增加参数“topology.debug”和“topology.eventlogger.executors”。
- 拓扑如何处理数据是拓扑自身行为。样例拓扑随机生成字符并分隔字符串,需要查看处理情况时,请启用采样功能并参见查看Storm拓扑日志。
- 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"。
- 执行以下命令,查看Storm中的拓扑。启用Kerberos认证的集群,只有属于“stormadmin”或“storm”的用户可以查看所有拓扑。
storm list