storm集群的配置与启动

配置


 storm在conf/storm.yaml包含了一些配置信息。

storm.zookeeper.servers:
       - "10.16.15.6"
  storm.zookeeper.port: 2181
  storm.local.dir: "/tmp/storm/"
  nimbus.host: "10.16.15.3"
  ui.port: 8999
  supervisor.slots.ports:
       - 6700
       - 6701
       - 6702
       - 6703

  • storm.zookeeper.servers/port:配置storm集群使用的zookeeper集群的地址/端口
  • storm.local.dir:Nimbus和Supervisor在本地磁盘上的状态缓存信息(jar包, 配置文件等)
  • nimbus.host:Nimbus机器的地址
  • ui.port: 用于storm ui的端口
  • supervisor.slots.ports:机器上运行的进程及每个进程使用的端口

storm UI 默认端口是8080,当该端口已被占用时,需要在storm.yaml中显式指定


启动

源码storm是一个fail-fast系统,出现什么不可预知的错误的时候它都会退出的。如果Nimbus和Supervisor重启的话,不会影响正在运行的topology。

  • zookeeper:在zookeeper的机器上启动进程,/usr/local/zookeeper/bin/zkServer.sh  start
  • Nimbus:在Nimbus机器上启动进程,sudo ~/luyongjing/storm-0.8.1/bin/storm nimbus
  • Supervisor:在每台Supervisor机器上启动进程,sudo ~/luyongjing/storm-0.8.1/bin/storm supervisor 
  • Storm UI:storm UI是一个监控storm运行状态的网页,bin/storm ui,访问地址: http://{nimbus.host}:ui.port/。

也可以将上述命令写成一个简单的脚本。

在每次启动前,先杀死storm相关进程:ps aux|grep storm|grep root|awk '{print $2}'|xargs sudo kill。然后将进程从后台启动,例如:sudo nohup ~/luyongjing/storm-0.8.1/bin/storm nimbus &

若出现“kill xxxx: 没有那个进程”,删除storm.local.dir中的supervisor缓存文件,重新启动即可。出现该问题是由于上一次Supervisor的异常终止,例如断电等


编译


使用maven编译storm_starter源码

  • 下载:git clone https://github.com/nathanmarz/storm-starter.git 
  • 编译:sudo mvn -f m2-pom.xml compile
  • 打包:sudo mvn -f m2-pom.xml package
  • 删除:sudo mvn -f m2-pom.xml clean 

mvn -f 表示强制使用 m2-pom来编译

运行


向storm集群提交storm_starter中的example

  • 提交topology:sudo storm jar storm-starter-0.0.1-SNAPSHOT-jar-with-dependencies.jar storm.starter.WordCountTopology WordCount
  • 终止topologystorm kill WordCount



你可能感兴趣的:(storm)