Storm初识(1)


在Storm集群中,有两类节点:主节点 master node 和工作节点 worker nodes。
主节点运行着一个叫做Nimbus的守护进程。这个守护进程负责在集群中分发代码,为工作节点分配任务,并监控故障。
Supervisor守护进程作为拓扑的一部分运行在工作节点上。一个Storm拓扑结构在不同的机器上运行着众多的工作节点。
因为Storm在Zookeeper或本地磁盘上维持所有的集群状态,守护进程可以是无状态的而且失效或重启时不会影响整个系统的健康。

  • Nimbus: 责资源分配和任务调度
  • Supervisor:负责接受nimbus分配的任务,启动和停止属于自己管理的worker进程
  • Work:运行具体处理组件逻辑的进程
  • Task: worker中每一个spout/bolt的线程称为一个task

http://storm.apache.org/releases/1.2.2/Setting-up-a-Storm-cluster.html

大致内容如下:
Storm集群依赖于zookeeper做配置中心,所以安装之前确保zookeeper已经安装并正常启动。

1.去官网下载最新的 storm:http://storm.apache.org/index.html

2.解压:tar -zxvf apache-storm-1.2.2.tar.gz storm

3.修改配置文件:

conf/storm.yaml

#zookeeper配置中心
storm.zookeeper.servers:
     - "hadoopmaster"
     - "hadoopslaver1"
     - "hadoopslaver2"
#主节点的候选节点
nimbus.seeds: ["hadoopmaster"]
#集群所需要的运行时数据存放目录
storm.local.dir: "usr/local/storm/data"
#工作节点运行时的端口
supervisor.slots.ports:
        - 6700
        - 6701
        - 6702
#主节点默认机器
nimbus.host: "hadoopmaster"

#指定nimbus启动JVM最大可用内存大小
work.childopts: "-Xms1024"

以上为主要配置项,配置完成以后保存,记得创建数据目录data。

然后分发给其余的几台工作主机:

scp -r storm hadoop@hadoopslaver:/usr/local/

4.配置环境变量:

export STORM_HOME=/usr/local/storm
export PATH=.:$STORM_HOME/bin:$ZOOKEEPER_HOME/bin:$JAVA_HOME/bin:$PATHc

别忘了同步到其他节点。

6.我们可以启动集群:

启动主节点:

cd storm/bin
nohup storm nimbus&

启动UI界面:

nohup storm ui&

启动工作节点,两台机器分别执行:

cd storm/bin
nohup storm supervisor&

注意:bin/storm命令 有一些可用参数,上面的storm后面的命令即为他的参数项,不知道参数是什么,你输入storm命令就会有提示。

上面已经启动了UI界面,UI界面默认的端口号为8080,我们可以查看一下:

hadoopmaster:8080

在这里插入图片描述

Storm常用命令

提交任务命令格式:

storm jar [jar路径] [拓扑包名.拓扑类名] [拓扑名称]

#如下命令表示加载 my_code.jar 中的 com.test.MyTopology 类, 传入arg1 arg2 arg3这三个参数
storm jar my_code.jar com.test.MyTopology arg1 arg2 arg3

杀死任务命令格式

storm kill [拓扑名称] -w 10(执行kill命令时可以通过-w [等待秒数]指定拓扑停用以后的等待时间)

#{toponame}为Topology提交到Storm集群时指定的Topology任务名称
storm kill {topoName}  

停用任务命令格式:

storm deactivte [拓扑名称]

storm deactivte {topoName}  

我们能够挂起或停用运行中的拓扑。当停用拓扑时,所有已分发的元组都会得到处理,但是spouts的nextTuple方法不会被调用。销毁一个拓扑,可以使用kill命令。它会以一种安全的方式销毁一个拓扑,首先停用拓扑,在等待拓扑消息的时间段内允许拓扑完成当前的数据流。

启用任务命令格式 :

storm activate[拓扑名称]

 storm activate  {topoName}

重新部署任务命令格式 :

storm rebalance [拓扑名称]

storm rebalance {topoName}

再平衡使你重分配集群任务。这是个很强大的命令。比如,你向一个运行中的集群增加了节点。再平衡命令将会停用拓扑,然后在相应超时时间之后重分配worker,并重启拓扑。

相关