本地虛拟機搭建zk環境,安裝jstorm,并運作一個簡單的jstorm demo。
步驟:
1.安裝jdk,python,配置zookeeper。
2.配置jstorm,安裝jstorm UI。
3.啟動jstorm。
詳細步驟:
1.安裝jdk,配置zookeeper。
(1)安裝jdk
啟動zk需要java1.8,啟動jstorm需要java1.7
先配置jdk1.8 (解壓指令tar zxvf / tar -xvf)
vi /etc/profile
讓配置生效
source /etc/profile
(2)zk安裝配置
由于機器不足,是以在一台機器部署3個server,建立3個目錄
把zk安裝包放進這三個server目錄并解壓
每個zkserver目錄都建立data,dataLog,logs
進入每個data目錄,建立myid檔案,裡面寫入server對應的數字,例如這個是server1,就寫1,另外兩個分别寫2,3
分别進入3個zkserver的apache-zookeeper-3.7.0-bin/conf目錄,把zoo_sample.cfg改為zoo.cfg,并修改zoo.cfg
由于是部署在1台機器上是以
clientPort端口三個server不能一樣
server1是2181,
server2是2182,
server3是2183,
dataDir和dataLogDir也需要區分下。 最後幾行唯一需要注意的地方就是 server.X 這個數字就是對應 data/myid中的數字。
之前在3個server的myid檔案中分别寫入了1,2,3,那麼每個server中的zoo.cfg都配server.1,server.2,server.3。
因為在同一台機器上,後面連着的2個端口3個server都不要一樣,否則端口沖突,其中
第一個端口用來叢集成員的資訊交換,
第二個端口是在leader挂掉時專門用來進行選舉leader所用
修改log4j.properties檔案,使zookeeper能輸出日志檔案,注意每個server的路徑不同
log4j.rootLogger=INFO, CONSOLE,ROLLINGFILE
log4j.appender.ROLLINGFILE.File=/opt/storm/zkserver1/logs/zookeeper.log
進入apache-zookeeper-3.7.0-bin/bin目錄, ./zkServer.sh start啟動一個server
(啟動之前先把相關端口開放,如2181、2182、2183、22、2888、2889、2890、3888、3889、3890、6700、6701、6702、6703、8080等,開放端口方法見文末)
然後我們把剩下兩個zk也啟動
Storm解壓後,需要先建立workdir目錄 , mkdir /opt/storm/storm/workdir
storm.yaml配置檔案如下,需要注意的是每個配置項需要以空格開頭,否則程式讀不出來
storm.zookeeper.servers:Storm叢集使用的Zookeeper叢集位址
storm.zookeeper.port:zookeeper端口不使用預設端口是配置該項
storm.local.dir:Nimbus和Supervisor程序用于存儲少量狀态,如jars、confs等的本地磁盤目錄,需要提前建立該目錄并給以足夠的通路權限
nimbus.host: Storm叢集Nimbus機器位址,各個Supervisor工作節點需要知道哪個機器是Nimbus,以便下載下傳Topologies的jars、confs等檔案
supervisor.slots.ports:對于每個Supervisor工作節點,需要配置該工作節點可以運作的worker數量。每個worker占用一個單獨的端口用于接收消息,該配置選項即用于定義哪些端口是可被worker使用的。預設情況下,每個節點上可運作4個workers,分别在6700、6701、6702和6703端口
由于使用虛拟機無法多開視窗,是以可以通過windows的cmd指令視窗遠端連接配接虛拟機(多開幾個cmd視窗)
最後一步,啟動Storm的所有背景程序。和Zookeeper一樣,Storm也是快速失敗(fail-fast)的系統,這樣Storm才能在任意時刻被停止,并且當程序重新開機後被正确地恢複執行。這也是為什麼Storm不在程序内儲存狀态的原因,即使Nimbus或Supervisors被重新開機,運作中的Topologies不會受到影響。
以下是啟動Storm各個背景程序的方式:(本文 沒設定好在UI 前台檢視相關資訊,故UI沒起)
啟動之前先切換jdk1.8環境變量
使變量生效
在啟動supervisor時可能會啟不來,是以需要檢查配置檔案
cd /etc/hosts 加入如下配置:
192.168.238.132 storm
其中storm為主機名(hostname)
注意:如果主機名是localhost,會影響nimbus的啟動,需要修改主機名
Nimbus: 在Storm主要節點上運作"./jstorm nimbus >/dev/null 2>&1 &"啟動Nimbus背景程式,并放到背景執行;
Supervisor: 在Storm各個工作節點上運作"./jstorm supervisor >/dev/null 2>&1 &"啟動Supervisor背景程式,并放到背景執行;
UI: 在Storm主要節點上運作"./storm ui >/dev/null 2>&1 &"啟動UI背景程式,并放到背景執行,啟動後可以通過http://{nimbus host}:8080觀察叢集的worker資源使用情況、Topologies的運作狀态等資訊。
最後啟動jstorm的demo
進入日志目錄檢視日志結果