1,storm基礎介紹:
storm作為大資料處理框架之一,其和spark一樣具有非常廣泛的使用,如下為storm的架構圖:
在了解集群配置安裝之前需要掌握如下幾個概念(concept):
拓撲(topologies):類似hadoop的mapreduce 的任務(job),區別在於 mapreduce 的乙個 job 在得到結果之後總會結束,而拓撲會一直在集群中執行,直到被手動終止。
流(streams):資料流(streams)是 storm 中最核心的抽象概念。乙個資料流指的是在分布式環境中並行建立、處理的一組元組(tuple)的無界序列。
資料來源(spouts):資料來源(spout)是拓撲中資料流的**。一般 spout 會從乙個外部的資料來源讀取元組然後將他們傳送到拓撲中。根據需求的不同,spout 既可以定義為
可靠的資料來源,也可以定義為
不可靠的
資料來源。
資料流處理元件(bolts):拓撲中所有的資料處理均是由 bolt 完成的。通過資料過濾(filtering)、函式處理(functions)、聚合(aggregations)、聯結(joins)、資料庫互動等功能,bolt 幾乎能夠完成任何一種資料處理需求。
資料流分組(stream groupings):為拓撲中的每個 bolt 的確定輸入資料流是定義乙個拓撲的重要環節。資料流分組定義了在 bolt 的不同任務(tasks)中劃分資料流的方式。
可靠性(reliability)
任務(tasks):在 storm 集群中每個 spout 和 bolt 都由若干個任務(tasks)來執行。
工作程序(workers):拓撲是在乙個或多個工作程序(worker processes)中執行的
nimbus:storm集群的守護程序之一,所以集群的主管理服務。
supervisor:storm集群的worker節點,執行任務的機器守護程序。
zookeeper:作為storm集群的配置管理存在。(zookeeper基本是配置管理的主選軟體)
2,storm集群安裝
2.1 集群部署架構介紹
在192.168.32.150~152三颱主機部署storm集群,依賴zookeeper完成配置管理及nimbus和supervisor的註冊工作。
--zookeeper
192.168.32.150
192.168.32.151
192.168.32.152
--nimbus
192.168.32.150
--supbervisor
192.168.32.151
192.168.32.152
前置條件:在安裝和配置之前需要保證所有機器jdk7+和python 2.6.6+。
2.2 zookeeper集群搭建
2.2.2 修改zookeeper的conf/zoo.cfg檔案,增加如下配置(每台機器的zookeeper配置均如下)
clientport=2181
server.150=192.168.32.150:2888:3888
server.151=192.168.32.151:2888:3888
server.152=192.168.32.152:2888:3888
2.2.3 啟動zookeeper集群在每台機器上通過zookeeper的bin/zkserver.sh start啟動zk,zookeeper會自動組建集群。
2.2.4 zookeeper環境確認:在每台機器上執行zkserver.sh status檢視其狀態,如
[root@rhel150 ~]# ./zookeeper/zookeeper-3.4.9/bin/zkserver.sh status
zookeeper jmx enabled by default
using config: /root/zookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg
mode: follower
2.3 storm集群搭建2.3.2 配置storm,修改conf/storm.yaml檔案,增加如下配置(每台機器配置均相同):
storm.zookeeper.servers:
- "192.168.32.150"
- "192.168.32.151"
- "192.168.32.152"
storm.zookeeper.port: 2181
storm.local.dir: "/root/storm/storm-local"
nimbus.seeds: ["192.168.32.150"]
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
storm.health.check.dir: "healthchecks"
storm.health.check.timeout.ms: 5000
其中storm.local.dir指定的目錄需要提前建立,
supervisor.slots.ports配置的埠數量決定了每台supervisor機器的worker數量,每個worker會有自己的監聽埠用於監聽任務。
2.3.3 啟動storm:
在192.168.32.150機器啟動nimbus和監控
#!/bin/sh
storm_home=/root/storm/storm-1.2.1
nohup $storm_home/bin/storm nimbus &
nohup $storm_home/bin/storm ui &
在192.168.32.151和152機器啟動supervisor作為worker
#!/bin/sh
storm_home=/root/storm/storm-1.2.1
nohup $storm_home/bin/storm supervisor &
#nohup $storm_home/bin/storm ui &
3 環境確認通過瀏覽器訪問ui監控介面,"storm ui"命令執行的機器ip + 預設8080埠,如本例中的
到此,storm集群搭建完成,主要工作為:1,zookeeper的安裝;2,storm中配置zookeeper的位址;3,分別啟動storm的nimbus和supervisor及監控ui。
RHEL7 0下安裝Storm1 2 1集群
1.基本資訊 軟硬體環境 版本storm1.2.1 安裝機器 三颱機器 big data01 ip 192.168.200.121 big data02 ip 192.168.200.122 big data03 ip 192.168.200.123 賬號hadoop 源路徑 opt softwar...
storm1 2 2 集群搭建
2 修改conf目錄下的storm.yaml配置檔案 注意,storm對配置檔案的格式校驗非常嚴格,以下配置項,每行前要有乙個空格,和 後都要有空格 zookeeper位址,storm.zookeeper.servers xx.xx.xx.xx storm.zookeeper.port 2181 s...
Storm1 0 3集群部署
storm集群部署 1 所有的集群上都要配置hosts vi etc hosts 192.168.33.201 storm1 hadoop1 zk1 192.168.33.202 storm2 hadoop2 zk2 192.168.33.203 storm3 hadoop3 zk3 2 集群部署的...