Strom開發配置手冊
一:Storm集群搭建
1.本次開發使用的是storm0.9.3
2.Storm0.9.3集群搭建:
1)storm集群角色包含集群主節點Nimbus;集群從節點Supervisor
2)集群安裝:先安裝zookeeper集群;上傳storm安裝包到服務器;修改配置文件;啟動集群
3)集群安裝前,需要修改主機名稱配置IP:vi/etc/hosts
關閉服務器之間的防火墻:
執行如下命令:
service iptables save service iptables stop chkconfig iptables off service ip6tables save service ip6tables stop chkconfig ip6tables off |
4)Zookeeper安裝過程:
1.上傳zk安裝包
2.解壓
3.配置(先在一臺節點上配置)
3.1添加一個zoo.cfg配置文件
$ZOOKEEPER/conf
mv zoo_sample.cfg zoo.cfg
3.2修改配置文件(zoo.cfg)
dataDir=/bigdata/zookeeper-3.4.5/data
server.1=bigdata227:2888:3888
server.2=bigdata228:2888:3888
server.3=bigdata229:2888:3888
3.3在(
server那個點之後的數字是幾,就在myid文件中寫入幾(比如server.1=bigdata227:2888:3888),那麽在bigdata227,這臺服務器中的zk文件目錄下的data文件夾下創建的myid文件內容就是1
3.4將配置好的zk拷貝到其他節點
scp -r /bigdata/zookeeper-3.4.5/ bigdata228:/bigdata/
scp -r /bigdata/zookeeper-3.4.5/ bigdata229:/bigdata/
3.5註意:在其他節點上一定要修改myid的內容
在bigdata228應該講myid的內容改為2 :在bigdata228,這臺服務器中的zk文件目錄下的data文件夾下創建的myid文件內容就是2
在bigdata229應該講myid的內容改為3 :在bigdata229,這臺服務器中的zk文件目錄下的data文件夾下創建的myid文件內容就是3
4.啟動集群
分別啟動zk
./zkServer.sh start
使用./zkServer.sh status 可以查看啟動zk的啟動狀態
5)上傳storm0.9.3 解壓
6)Cd到/bigdata/apache-storm-0.9.3/conf,修改storm.yaml配置文件
增加storm.zookeeper.server:
Nimbus.host
然後保存退出,把storm文件傳至bigdata228、bigdata229兩臺主機
7)啟動集群:
先啟動nimbus:
Cd到 nimbus(bigdata227) storm的bin目錄執行:
./storm nimbus 1>/dev/null 2>&1 &
還可以啟動一個web服務進程
./storm ui 1>/dev/null 2>&1 &
然後切換到bigdata228、bigdata229
啟動各節點中的supervisor:
Cd 到storm的bin 目錄 執行:
./storm supervisor 1>/dev/null 2>&1 &
到此storm集群搭建完成!!
二:stormDemo項目說明
數據庫
實時表:
Day表:
該demo程序是簡單的一個day天的歸集統計,歸集電壓的一天總和,後續存儲過程開發可以再次基礎上進行
項目主要的數據源是從數據庫中讀取:
Storm包中是對從數據庫中讀取的數據進行業務邏輯處理
類的說明:
RandomSpout是獲取數據源並傳遞給DayBolt,以後存儲過程可以設計MonthBolt、YearBolt等等
類TopoMain類是組合類,也是主類,spout和bolt的設置都在這裏面
註意:
//單機開發模式
LocalCluster cluster = new LocalCluster();
cluster.submitTopology("demotopo", conf, topo);
//集群模式:提交topo到storm的集群中
//StormSubmitter.submitTopology("demotopo", conf, topo);
如果是單機開發模式,則可以像運行Java application一樣在本機運行
如果想部署到集群,首先把項目打成jar包,傳到nimbus所在的服務器,然後切換到storm的bin目錄,執行:./storm jar /bigdata/xxx.jar cn.zhangshitong.TopoMain 前面是jar包的位置,後面是jar包中的主類
Nimbus就會把任務分發給supervisor了
Strom開發配置手冊