第1節 storm編程:四、storm環境安裝以及storm編程模型介紹

dataSource:數據源,生產數據的東西html

spout:接收數據源過來的數據,而後將數據往下游發送node

bolt:數據的處理邏輯單元。能夠有不少個,基本上每一個bolt都處理一部分工做,而後將數據繼續往下游的bolt發送mysql

 

storm不會保存數據,也不會生產數據,只是一個數據的搬運工web

tuple:元組的概念,能夠理解爲一個數組,或者一個集合,裏面能夠封裝不少東西,數據從上游往下游發送,都是封裝在tuple裏面了sql

topology:spout與bolt組織到一塊兒,造成一個topology mongodb

注意,配置文件比較嚴格,直接拷貝,儘可能不要去手寫!apache

===========================================編程

一、  storm的安裝

三臺機器運行服務規劃數組

運行服務\機器規劃服務器

Node01

Node02

Node03

Zookeeper版本

3.4.5

Zookeeper服務

Storm版本

Apache-storm-1.1.1

Nimbus服務

是(leader)

Supervisor服務

IP地址規劃

192.168.52.100

192.168.52.110

192.168.52.120

 

 

 

 

3.1三臺機器安裝zookeeper服務

Node01配置文件修改

修改zoo.cfg

dataDir=/export/servers/zookeeper-3.4.9/zkData/data

dataLogDir=/export/servers/zookeeper-3.4.9/zkData/log

autopurge.snapRetainCount=3

autopurge.purgeInterval=1

server.1=node01:2888:3888

server.2=node02:2888:3888

server.3=node03:2888:3888

修改myid

 

 

Node02 修改配置文件

修改zoo.cfg

dataDir=/export/servers/zookeeper-3.4.9/zkData/data

dataLogDir=/export/servers/zookeeper-3.4.9/zkData/log

autopurge.snapRetainCount=3

autopurge.purgeInterval=1

server.1=node01:2888:3888

server.2=node02:2888:3888

server.3=node03:2888:3888

 

修改myid

 

 

Node03修改配置文件

修改zoo.cfg

dataDir=/export/servers/zookeeper-3.4.9/zkData/data

dataLogDir=/export/servers/zookeeper-3.4.9/zkData/log

autopurge.snapRetainCount=3

autopurge.purgeInterval=1

server.1=node01:2888:3888

server.2=node02:2888:3888

server.3=node03:2888:3888

修改myid

 

三臺服務器啓動zookeeper服務

bin/zkServer.sh  start 

三臺機器查看zookeeper服務狀態

bin/zkServer.sh status

 

 

3.二、三臺機器安裝storm集羣

一、上傳storm壓縮包

二、解壓

tar -zxvf apache-storm-1.1.1.tar.gz -C ../servers/

 

三、修改配置文件

storm.zookeeper.servers:

     - "node01"

     - "node02"

     - "node03"

#

nimbus.seeds: ["node01", "node02", "node03"]

 

storm.local.dir: "/export/servers/apache-storm-1.1.1/stormdata"

ui.port: 8088 #修改成8089,由於和kafka的8088衝突了

supervisor.slots.ports:

    - 6700

    - 6701

    - 6702

    - 6703

 

四、將storm安裝程序分發拷貝到另外兩臺機器上

scp -r apache-storm-1.1.1/ node02:/export/servers/

scp -r apache-storm-1.1.1/ node03:$PWD

 

二、          三臺機器啓動storm服務

Node01 啓動相關服務

啓動 nimbus進程

nohup bin/storm nimbus >/dev/null 2>&1 &

啓動web  UI

nohup bin/storm ui >/dev/null 2>&1 &

啓動logViewer

nohup bin/storm logviewer >/dev/null 2>&1 & 

啓動supervisor

nohup bin/storm supervisor >/dev/null 2>&1 &

 

Node02啓動相關服務

nimbus:nohup bin/storm nimbus >/dev/null 2>&1 & 
logviewer:nohup bin/storm logviewer >/dev/null 2>&1 & 
supervisor:nohup bin/storm supervisor >/dev/null 2>&1 &

 

node03啓動相關服務

nimbus:nohup bin/storm nimbus >/dev/null 2>&1 & 
logviewer:nohup bin/storm logviewer >/dev/null 2>&1 & 
supervisor:nohup bin/storm supervisor >/dev/null 2>&1 &

 

四、  storm的UI界面管理

訪問地址

http://192.168.8.100:8089/index.html    或者  

http://node01:8089/

2. storm的編程模型

DataSource:外部數據源

Spout:接受外部數據源的組件,將外部數據源轉化成Storm內部的數據,以Tuple爲基本的傳輸單元下發給Bolt

Bolt:接受Spout發送的數據,或上游的bolt的發送的數據。根據業務邏輯進行處理。發送給下一個Bolt或者是存儲到某種介質上。介質能夠是mongodb或mysql,或者其餘。

Tuple:Storm內部中數據傳輸的基本單元,裏面封裝了一個List對象,用來保存數據。

StreamGrouping:數據分組策略 
7種:shuffleGrouping(Random函數),

Non Grouping(Random函數),

FieldGrouping(Hash取模)、

Local or ShuffleGrouping 本地或隨機,優先本地。

其中Local or ShuffleGrouping 是若是分組的時候接收bolt的線程和發送者在一個JVM中默認優先選擇一個JVM中的bolt就是local,不然和ShuffleGrouping效果同樣。

相關文章
相關標籤/搜索