Storm集群部署与单词计数程序

要搭建storm集群首先需要由zookeeper,这里使用三台机器,一台做做nimbus(mini1机器),两台做supervisor(mini2和mini3机器)。
三台hosts文件如下

[root@mini1 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 localhost.jinbm
192.168.25.127 mini1
192.168.25.129 mini2
192.168.25.130 mini3

这里还是使用root用户来搭建
按照一般集群部署流程
集群部署的流程:下载安装包、解压安装包、修改配置文件、分发安装包、启动集群。
1、下载storm,我这里下载的是apache-storm-0.9.5.tar.gz,传到mini1机器上。
2、解压storm安装包到apps文件夹下(如果没有该文件夹需要创建,我这里以前将zookeeper,hadoop等都解压到了这个文件夹方便统一管理),解压后,修改名字为storm(一来为了方便,但主要是为了配置环境变量方便,即使以后换了storm版本只要改名为storm那么环境变量已然有效)。

[root@mini1 ~]# tar -zxvf apache-storm-0.9.5.tar.gz -C apps/
[root@mini1 ~]# cd apps/
[root@mini1 apps]# ll
总用量 24
drwxr-xr-x.  8 root   root   4096 10月 19 15:15 apache-flume-1.6.0-bin
drwxr-xr-x.  9 root   root   4096 10月 30 15:24 apache-storm-0.9.5
drwxrwxr-x. 10 hadoop hadoop 4096 9月  30 22:04 hadoop-2.6.4
drwxr-xr-x.  7 root   root   4096 10月 30 00:20 hbase
drwxr-xr-x.  8 root   root   4096 10月 17 12:38 hive
drwxr-xr-x. 10 root   root   4096 10月 29 23:21 zookeeper-3.4.6
[root@mini1 apps]# mv apache-storm-0.9.5/ storm

3、修改环境变量(三台机器都一样)
最后添加2两信息

[root@mini1 storm]# vi /etc/profile
...
export STORM_HOME=/root/apps/storm
export PATH=$PATH:$STORM_HOME/bin

[root@mini1 storm]# source /etc/profile

4、修改配置文件,进入strom目录的conf目录下,修改配置文件storm.yaml。添加内容如下:

[root@mini1 conf]# vi storm.yaml 
#指定storm使用的zk集群
storm.zookeeper.servers:
- "mini1"
- "mini2"
- "mini3"
#指定storm集群中的nimbus节点所在的服务器
nimbus.host: "mini1"
#指定nimbus启动JVM最大可用内存大小
nimbus.childopts: "-Xmx1024m"
#指定supervisor启动JVM最大可用内存大小
supervisor.childopts: "-Xmx1024m"
#指定supervisor节点上,每个worker启动JVM最大可用内存大小
worker.childopts: "-Xmx768m"
#指定ui启动JVM最大可用内存大小,ui服务一般与nimbus同在一个节点上。
ui.childopts: "-Xmx768m"
#指定supervisor节点上,启动worker时对应的端口号,每个端口对应槽,每个槽位对应一个worker,这里是4个worker
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703

5、将配置好的storm安装包分发到mini2和mini3机器上/root/apps目录下

[root@mini1 apps]# scp -r storm/ mini2:/root/apps/
[root@mini1 apps]# scp -r storm/ mini3:/root/apps/

6、启动集群
mini1机器上进入storm的bin目录下启动nimbus和ui
可以使用nuhub指令启动但是如果没安装的话就按照我下面的,无非多开两个窗口

启动nimbus
[root@mini1 bin]# ./storm nimbus
换个窗口启动ui
[root@mini1 bin]# ./storm ui
[root@mini1 ~]# jps
14783 Jps
4550 QuorumPeerMain
14648 nimbus
14714 core

在mini2和mini3上分别启动supervisor
[root@mini2 bin]# ./storm supervisor 
[root@mini3 bin]# ./storm supervisor
[root@mini3 ~]# jps
3466 QuorumPeerMain
8912 Jps
8826 supervisor

查看集群是否启动起来
浏览器输入mini1:8080


image.png

Cluster Summary中能看到Supervisor的个数为2,对应的物理机mini2和mini3各启了一个。空闲的槽有8个,总共有8个槽(即worker数,配置文件中配了4个端口也就是4个worker,mini2和mini3个四个所以就是8个)

Topology summary没有内容是因为还没有跑storm程序
后面还有Supervisor summary与Nimbus Configuration的相关信息。
现在使用storm命令来跑个wordcount程序。
在mini3机器上(随意)

[root@mini3 storm]# storm jar examples/storm-starter/storm-starter-topologies-0.9.5.jar storm.starter.WordCountTopology wordcount
...
File 'examples/storm-starter/storm-starter-topologies-0.9.5.jar' uploaded to 'storm-local/nimbus/inbox/stormjar-dfed4e29-132b-45d8-9e5a-f5cbb87c4927.jar' (3248678 bytes)
487  [main] INFO  backtype.storm.StormSubmitter - Successfully uploaded topology jar to assigned location: storm-local/nimbus/inbox/stormjar-dfed4e29-132b-45d8-9e5a-f5cbb87c4927.jar
488  [main] INFO  backtype.storm.StormSubmitter - Submitting topology wordcount in distributed mode with conf {"topology.workers":3,"topology.debug":true}
825  [main] INFO  backtype.storm.StormSubmitter - Finished submitting topology: wordcount

再次查看页面


image.png

看到了使用了三个Worker,共28个executor(28个task,默认情况下executor=task=thread数)有个wordcount程序在跑。点击
Topology summary下的wordcount,查看拓扑详情


image.png

能看到一个Spout2个Bolt,id也列出来了。各自使用的线程数已经发射数据转换数据。要看具体的spout和bolt信息,点击进去即可,这里查看下split


image.png

线程的id,使用了那台机器的哪个端口(槽,即worker),发射数据都有。

查看日志
在nimbus上查看ui日志信息(别的自行查看)

[root@mini1 storm]# tail -100f logs/ui.log 
2017-10-30T15:36:06.293+0800 o.m.log [INFO] Logging to Logger[org.mortbay.log] via org.mortbay.log.Slf4jLog
2017-10-30T15:36:06.304+0800 o.m.log [INFO] jetty-6.1.26
2017-10-30T15:36:06.339+0800 o.m.log [INFO] Started SocketConnector@0.0.0.0:8080
2017-10-30T15:36:08.779+0800 b.s.thrift [INFO] Connecting to Nimbus at mini1:6627
2017-10-30T15:36:08.779+0800 b.s.thrift [INFO] Connecting to Nimbus at mini1:6627
...

在mini2或者mini3查看worker信息

[root@mini3 logs]# ll
总用量 48812
-rw-r--r--. 1 root root        0 10月 30 15:37 access.log
-rw-r--r--. 1 root root        0 10月 30 15:37 metrics.log
-rw-r--r--. 1 root root    18284 10月 30 16:23 supervisor.log
-rw-r--r--. 1 root root 49961204 10月 30 16:43 worker-6703.log
[root@mini3 logs]#  tail -100f worker-6703.log 

一些总结
Worker与topology
一个worker只属于一个topology,每个worker中运行的task只能属于这个topology。
反之,一个topology包含多个worker,其实就是这个topology运行在多个worker上。
一个topology要求的worker数量如果不被满足,集群在任务分配时,根据现有的worker先运行topology。
如果当前集群中worker数量为0,那么最新提交的topology将只会被标识active,不会运行,
只有当集群有了空闲资源之后,才会被运行。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,980评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,422评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,130评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,553评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,408评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,326评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,720评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,373评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,678评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,722评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,486评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,335评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,738评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,283评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,692评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,893评论 2 335

推荐阅读更多精彩内容