您的位置:首页 > 其它

storm操作语句.docx

2015-09-10 12:42 281 查看

1、启动Nimbus后台程序

在storm主控节点上运行,nimbus进程。
[hadoop@datanode1 storm]$ storm nimbus >/dev/null 2>&1 & # nimbus进程。

2、启动supervisor后台程序

在storm各个工作节点上运行,supervisor进程。

[hadoop@datanode1 storm]$ bin/storm supervisor >/dev/null 2>&1 & #supervisor进程

3、启动UI后台程序

在storm主控节点上运行,core进程。

[hadoop@datanode1 storm]$ storm ui > /dev/null 2>&1 & #core进程

启动后通过http://{nimbus host}:8080观察集群的worker资源使用情况、Topologies的运行状态等信息。

Storm UI只提供对topology的监控和统计。Storm不处理计算结果的保存。

4、启动logviewer后台程序(作用为何?)

在storm主节点上运行,

4、查看所有storm进程

1)、主节点

2)、从节点

注意事项:

1)、Storm后台进程被启动后,将在Storm安装部署目录下的logs/子目录下生成各个进程的日志文件。

2)、经测试,Storm UI必须和Storm Nimbus部署在同一台机器上,否则UI无法正常工作,因为UI进程会检查本机是否存在Nimbus链接。

3)、为了方便使用,可以将bin/storm加入到系统环境变量中。

至此,Storm集群已经部署、配置完毕,可以向集群提交拓扑运行了。

5、向集群提交任务

1)、启动Storm Topology

storm jar allmycode.jar org.me.MyTopology arg1 arg2 arg3
其中,allmycode.jar是包含Topology实现代码的jar包,org.me.MyTopology的main方法是Topology的入口,arg1、arg2和arg3为org.me.MyTopology执行时需要传入的参数。

2)、停止Storm Topology

storm kill {toponame}
其中,{toponame}为Topology提交到Storm集群时指定的Topology任务名称。

6、提交测试storm 程序

我们将topology打成jar包后,利用bin/storm这个python脚本,执行以下命令:

bin/storm jar ***.jar com.taobao.MyTopology args
将jar包提交给storm集群。Storm脚本会启动JVM执行Topology的main方法,执行submitTopology的过程。而submitTopology会将jar文件上传到nimbus,上传是通过socket传输.在storm这个Python脚本的jar方法里可看到:

def jar(jarfile, klass, *args):
exec_storm_class(
klass,
jvmtype="-client",
extrajars=[jarfile, CONF_DIR, STORM_DIR + "/bin"],
args=args,
prefix="export STORM_JAR=" + jarfile + ";")
将jar文件的地址设置为环境变量STORM_JAR,这个环境变量在执行submitTopology的时候用到:

//StormSubmitter.java
private static void submitJar(Map conf) {
if(submittedJar==null) {
LOG.info("Jar not uploaded to master yet. Submitting jar ");
String localJar = System.getenv("STORM_JAR");
submittedJar = submitJar(conf, localJar);
} else {
LOG.info("Jar already uploaded to master. Not submitting jar.");
}
}
通过环境变量找到jar包的地址,然后上传。利用环境变量传参是个小技巧。

其次,nimbus在接收到jar文件后,存放到数据目录的inbox目录,nimbus数据目录的结构

-nimbus
-inbox
-stormjar-57f1d694-2865-4b3b-8a7c-99104fc0aea3.jar
-stormjar-76b4e316-b430-4215-9e26-4f33ba4ee520.jar

-stormdist
-storm-id
-stormjar.jar
-stormconf.ser
-stormcode.ser
更多关于topology提交的源码解析,参看:http://www.blogjava.net/killme2008/archive/2011/11/17/364112.html

[hadoop@master storm]$ bin/storm jar examples/storm-starter/storm-starter-topologies-0.9.3.jar storm.starter.ExclamationTopology ExclamationTopology

7、结束storm程序

[hadoop@master storm]$ storm kill ExclamationTopology

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: