Storm集群部署與單詞計(jì)數(shù)程序

要搭建storm集群首先需要由zookeeper,這里使用三臺(tái)機(jī)器订讼,一臺(tái)做做nimbus(mini1機(jī)器),兩臺(tái)做supervisor(mini2和mini3機(jī)器)鞋仍。
三臺(tái)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用戶來搭建
按照一般集群部署流程
集群部署的流程:下載安裝包、解壓安裝包、修改配置文件惑淳、分發(fā)安裝包、啟動(dòng)集群饺窿。
1汛聚、下載storm,我這里下載的是apache-storm-0.9.5.tar.gz短荐,傳到mini1機(jī)器上。
2叹哭、解壓storm安裝包到apps文件夾下(如果沒有該文件夾需要?jiǎng)?chuàng)建忍宋,我這里以前將zookeeper,hadoop等都解壓到了這個(gè)文件夾方便統(tǒng)一管理)风罩,解壓后糠排,修改名字為storm(一來為了方便,但主要是為了配置環(huán)境變量方便超升,即使以后換了storm版本只要改名為storm那么環(huán)境變量已然有效)入宦。

[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、修改環(huán)境變量(三臺(tái)機(jī)器都一樣)
最后添加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室琢、修改配置文件乾闰,進(jìn)入strom目錄的conf目錄下,修改配置文件storm.yaml盈滴。添加內(nèi)容如下:

[root@mini1 conf]# vi storm.yaml 
#指定storm使用的zk集群
storm.zookeeper.servers:
- "mini1"
- "mini2"
- "mini3"
#指定storm集群中的nimbus節(jié)點(diǎn)所在的服務(wù)器
nimbus.host: "mini1"
#指定nimbus啟動(dòng)JVM最大可用內(nèi)存大小
nimbus.childopts: "-Xmx1024m"
#指定supervisor啟動(dòng)JVM最大可用內(nèi)存大小
supervisor.childopts: "-Xmx1024m"
#指定supervisor節(jié)點(diǎn)上涯肩,每個(gè)worker啟動(dòng)JVM最大可用內(nèi)存大小
worker.childopts: "-Xmx768m"
#指定ui啟動(dòng)JVM最大可用內(nèi)存大小,ui服務(wù)一般與nimbus同在一個(gè)節(jié)點(diǎn)上。
ui.childopts: "-Xmx768m"
#指定supervisor節(jié)點(diǎn)上病苗,啟動(dòng)worker時(shí)對(duì)應(yīng)的端口號(hào)疗垛,每個(gè)端口對(duì)應(yīng)槽,每個(gè)槽位對(duì)應(yīng)一個(gè)worker硫朦,這里是4個(gè)worker
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703

5贷腕、將配置好的storm安裝包分發(fā)到mini2和mini3機(jī)器上/root/apps目錄下

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

6、啟動(dòng)集群
mini1機(jī)器上進(jìn)入storm的bin目錄下啟動(dòng)nimbus和ui
可以使用nuhub指令啟動(dòng)但是如果沒安裝的話就按照我下面的咬展,無非多開兩個(gè)窗口

啟動(dòng)nimbus
[root@mini1 bin]# ./storm nimbus
換個(gè)窗口啟動(dòng)ui
[root@mini1 bin]# ./storm ui
[root@mini1 ~]# jps
14783 Jps
4550 QuorumPeerMain
14648 nimbus
14714 core

在mini2和mini3上分別啟動(dòng)supervisor
[root@mini2 bin]# ./storm supervisor 
[root@mini3 bin]# ./storm supervisor
[root@mini3 ~]# jps
3466 QuorumPeerMain
8912 Jps
8826 supervisor

查看集群是否啟動(dòng)起來
瀏覽器輸入mini1:8080


image.png

Cluster Summary中能看到Supervisor的個(gè)數(shù)為2泽裳,對(duì)應(yīng)的物理機(jī)mini2和mini3各啟了一個(gè)≈可蓿空閑的槽有8個(gè)诡壁,總共有8個(gè)槽(即worker數(shù),配置文件中配了4個(gè)端口也就是4個(gè)worker荠割,mini2和mini3個(gè)四個(gè)所以就是8個(gè))

Topology summary沒有內(nèi)容是因?yàn)檫€沒有跑storm程序
后面還有Supervisor summary與Nimbus Configuration的相關(guān)信息妹卿。
現(xiàn)在使用storm命令來跑個(gè)wordcount程序。
在mini3機(jī)器上(隨意)

[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

看到了使用了三個(gè)Worker蔑鹦,共28個(gè)executor(28個(gè)task夺克,默認(rèn)情況下executor=task=thread數(shù))有個(gè)wordcount程序在跑。點(diǎn)擊
Topology summary下的wordcount嚎朽,查看拓?fù)湓斍?/p>

image.png

能看到一個(gè)Spout2個(gè)Bolt铺纽,id也列出來了。各自使用的線程數(shù)已經(jīng)發(fā)射數(shù)據(jù)轉(zhuǎn)換數(shù)據(jù)哟忍。要看具體的spout和bolt信息狡门,點(diǎn)擊進(jìn)去即可,這里查看下split


image.png

線程的id锅很,使用了那臺(tái)機(jī)器的哪個(gè)端口(槽其馏,即worker),發(fā)射數(shù)據(jù)都有爆安。

查看日志
在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 

一些總結(jié)
Worker與topology
一個(gè)worker只屬于一個(gè)topology,每個(gè)worker中運(yùn)行的task只能屬于這個(gè)topology叛复。
反之,一個(gè)topology包含多個(gè)worker扔仓,其實(shí)就是這個(gè)topology運(yùn)行在多個(gè)worker上褐奥。
一個(gè)topology要求的worker數(shù)量如果不被滿足,集群在任務(wù)分配時(shí)翘簇,根據(jù)現(xiàn)有的worker先運(yùn)行topology撬码。
如果當(dāng)前集群中worker數(shù)量為0,那么最新提交的topology將只會(huì)被標(biāo)識(shí)active缘揪,不會(huì)運(yùn)行耍群,
只有當(dāng)集群有了空閑資源之后义桂,才會(huì)被運(yùn)行。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蹈垢,一起剝皮案震驚了整個(gè)濱河市慷吊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌曹抬,老刑警劉巖溉瓶,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異谤民,居然都是意外死亡堰酿,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門张足,熙熙樓的掌柜王于貴愁眉苦臉地迎上來触创,“玉大人,你說我怎么就攤上這事为牍『甙螅” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵碉咆,是天一觀的道長抖韩。 經(jīng)常有香客問我,道長疫铜,這世上最難降的妖魔是什么茂浮? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮壳咕,結(jié)果婚禮上席揽,老公的妹妹穿的比我還像新娘。我一直安慰自己谓厘,他們只是感情好驹尼,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著庞呕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪程帕。 梳的紋絲不亂的頭發(fā)上住练,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音愁拭,去河邊找鬼讲逛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛岭埠,可吹牛的內(nèi)容都是我干的盏混。 我是一名探鬼主播蔚鸥,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼许赃!你這毒婦竟也來了止喷?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤混聊,失蹤者是張志新(化名)和其女友劉穎弹谁,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體句喜,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡预愤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了咳胃。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片植康。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖展懈,靈堂內(nèi)的尸體忽然破棺而出销睁,到底是詐尸還是另有隱情,我是刑警寧澤标沪,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布榄攀,位于F島的核電站,受9級(jí)特大地震影響金句,放射性物質(zhì)發(fā)生泄漏檩赢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一违寞、第九天 我趴在偏房一處隱蔽的房頂上張望贞瞒。 院中可真熱鬧,春花似錦趁曼、人聲如沸军浆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽乒融。三九已至,卻和暖如春摄悯,著一層夾襖步出監(jiān)牢的瞬間赞季,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來泰國打工奢驯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留申钩,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓瘪阁,卻偏偏與公主長得像撒遣,于是被迫代替她去往敵國和親邮偎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容