天天看點

【筆記】虛拟機安裝jstorm并運作demo

本地虛拟機搭建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

【筆記】虛拟機安裝jstorm并運作demo

 讓配置生效

source /etc/profile

【筆記】虛拟機安裝jstorm并運作demo

(2)zk安裝配置

由于機器不足,是以在一台機器部署3個server,建立3個目錄

【筆記】虛拟機安裝jstorm并運作demo

 把zk安裝包放進這三個server目錄并解壓

每個zkserver目錄都建立data,dataLog,logs

【筆記】虛拟機安裝jstorm并運作demo

進入每個data目錄,建立myid檔案,裡面寫入server對應的數字,例如這個是server1,就寫1,另外兩個分别寫2,3

【筆記】虛拟機安裝jstorm并運作demo

分别進入3個zkserver的apache-zookeeper-3.7.0-bin/conf目錄,把zoo_sample.cfg改為zoo.cfg,并修改zoo.cfg

【筆記】虛拟機安裝jstorm并運作demo
【筆記】虛拟機安裝jstorm并運作demo
【筆記】虛拟機安裝jstorm并運作demo
【筆記】虛拟機安裝jstorm并運作demo

由于是部署在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

【筆記】虛拟機安裝jstorm并運作demo
【筆記】虛拟機安裝jstorm并運作demo

進入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等,開放端口方法見文末)

【筆記】虛拟機安裝jstorm并運作demo

然後我們把剩下兩個zk也啟動

【筆記】虛拟機安裝jstorm并運作demo

Storm解壓後,需要先建立workdir目錄 , mkdir  /opt/storm/storm/workdir

storm.yaml配置檔案如下,需要注意的是每個配置項需要以空格開頭,否則程式讀不出來

【筆記】虛拟機安裝jstorm并運作demo
【筆記】虛拟機安裝jstorm并運作demo
【筆記】虛拟機安裝jstorm并運作demo
【筆記】虛拟機安裝jstorm并運作demo

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視窗)

【筆記】虛拟機安裝jstorm并運作demo

最後一步,啟動Storm的所有背景程序。和Zookeeper一樣,Storm也是快速失敗(fail-fast)的系統,這樣Storm才能在任意時刻被停止,并且當程序重新開機後被正确地恢複執行。這也是為什麼Storm不在程序内儲存狀态的原因,即使Nimbus或Supervisors被重新開機,運作中的Topologies不會受到影響。

以下是啟動Storm各個背景程序的方式:(本文 沒設定好在UI 前台檢視相關資訊,故UI沒起)

啟動之前先切換jdk1.8環境變量

【筆記】虛拟機安裝jstorm并運作demo

使變量生效

【筆記】虛拟機安裝jstorm并運作demo

在啟動supervisor時可能會啟不來,是以需要檢查配置檔案

cd /etc/hosts      加入如下配置:

192.168.238.132 storm

其中storm為主機名(hostname)

注意:如果主機名是localhost,會影響nimbus的啟動,需要修改主機名

Nimbus: 在Storm主要節點上運作"./jstorm nimbus >/dev/null 2>&1 &"啟動Nimbus背景程式,并放到背景執行;

【筆記】虛拟機安裝jstorm并運作demo

Supervisor: 在Storm各個工作節點上運作"./jstorm supervisor >/dev/null 2>&1 &"啟動Supervisor背景程式,并放到背景執行;

【筆記】虛拟機安裝jstorm并運作demo

UI: 在Storm主要節點上運作"./storm ui >/dev/null 2>&1 &"啟動UI背景程式,并放到背景執行,啟動後可以通過http://{nimbus host}:8080觀察叢集的worker資源使用情況、Topologies的運作狀态等資訊。

【筆記】虛拟機安裝jstorm并運作demo

最後啟動jstorm的demo

【筆記】虛拟機安裝jstorm并運作demo

進入日志目錄檢視日志結果

【筆記】虛拟機安裝jstorm并運作demo
【筆記】虛拟機安裝jstorm并運作demo