三、Storm架构及部署

本文详细介绍了Storm的架构,包括Nimbus、Supervisor和Worker的角色,并提供了在4台主机s100~s103上安装和配置Storm集群的步骤。在集群中,Nimbus负责任务分配,Supervisor执行具体工作,元数据存储在Zookeeper中。接着,文章展示了启动和验证安装的过程,包括配置storm.yaml、启动Nimbus、Supervisor、UI和Logviewer等进程。最后,讨论了如何将本地应用提交到集群运行以及使用`storm`命令管理topologies。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Storm架构:

类似于Hadoop的架构,主从架构(master/slave)。

Nimbus--集群的主节点:负责任务(task)的指派和分发、资源的分配;

Supervisor--集群的从节点:负责任务的具体部分,启动和停止自己管理的worker;一个从节点可以通过配置启动多个worker进程,一个Topo也可以通过配置运行在多个worker进程上。

他们上面的信息(元数据)存储在zookeeper中。 

Worker: 运行具体组件逻辑(Spout/Bolt)的进程。                   //进程

task:对应于Spout和Bolt;一个worker可以运行多个task; //线程

          Worker中每一个Spout和Bolt的线程称为一个Task

executor: spout和bolt可能会共享一个线程                         //线程

2、安装Storm集群:

[s100 ~ s103]    //4台主机作为分布式安装

1.jdk

2.tar

tar -zxvf apache-storm-1.1.0.tar.gz  -C /soft    //分发

3.环境变量

sudo nano /etc/profile                          //四台机器都要配置

#storm

export STORM_HOME=/soft/storm

export PATH=$PATH:$STORM_HOME/bin

        

scp -r apache-storm-1.1.0 centos@s101:/soft/     //分发

rsync -l storm centos@s101:/soft

4.验证安装

$>source /etc/profile

$>./storm version

5.分发安装文件到其他节点。

6.配置

[storm/conf/storm.yaml]                     //配置完之后记得分发

$>cp storm.yaml storm.yaml.bak

storm.local.dir: "/home/centos/storm"    //.yaml文件中:后面必须有空格!!!!

storm.zookeeper.servers:                      //zookeeper也是分布式的

- "s101"

- "s102"

storm.zookeeper.port: 2181

### nimbus.* configs are for the master

nimbus.seeds : ["s100"]

### ui.* configs are for the master

ui.host: 0.0.0.0

ui.port: 8080

supervisor.slots.ports:   //同一个节点开启的worker进程数

- 6700

- 6701

- 6702

- 6703

7.分发

    scp storm.yaml centos@s101:/storm/conf/

8.启动进程                   //要先启动zookeeper

s100: nimbus  supervisor(ui,logviewer)

s101: supervisor(logviewer)

s102: supervisor(logviewer)

s103: supervisor(logviewer)

a)启动s100 nimbus进程      //先启动nimbus节点

$>storm nimbus &

b)启动s101 ~ s103 supervisor进程

$>storm supervisor &

c)启动s100的ui进程

$>storm ui &

d)启动logview:

>storm logviewer &

9.通过webui查看http://s100:8080/

启动完之后查看:

[centos@s100 /home/centos/zookeeper]$jps

4224 Supervisor

3921 nimbus

1541 QuorumPeerMain                         //zkServer

4091 core                                               //ui

4333 Jps

[root@s101 /soft/zookeeper/conf]#jps

8630 Jps

8427 Supervisor

8523 logviewer

8316 QuorumPeerMain                       //zkServer

[centos@s102 /home/centos]$jps

3233 logviewer

3115 Supervisor

1373 QuorumPeerMain                       //zk

3325 Jps

[centos@s103 /home/centos]$jps

1592 logviewer

1482 Supervisor

1695 Jps

注意:storm UI 一直在刷新没响应.

      解决方案:

      1.kill掉 所有的supervisor以及nimbus, UI

      2.删除 zk上的storm节点.

      3.重启storm相关组件即可

3、

将跑在本地的storm app改成运行在集群上的:

// 代码提交到Storm集群上运行         String topoName = ClusterSumStormTopology.class.getSimpleName();         try {             StormSubmitter.submitTopology(topoName,new Config(), builder.createTopology());         } catch (Exception e) {             e.printStackTrace();         }

Storm如何在集群上运行我们自己开发的应用程序呢?

Syntax: storm  jar  topology-jar-path  class  args0  args1  args2

storm  jar  /home/hadoop/lib/storm-1.0.jar  com.imooc.bigdata.ClusterSumStormTopology

4、Storm常用命令:

list:Syntax: storm list

List the running topologies and their statuses.

如何停止作业:kill

       Syntax: storm kill topology-name [-w wait-time-secs]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值