JStorm是一個類似Hadoop MapReduce的系統,不同的是JStorm是一套基於流水線的消息處理機制,是阿里基於Storm優化的版本,和Storm一樣是一個分布式實時計算的系統,從開發角度來說,JStorm所有的概念和Storm都相同,所有的編程代碼一行不用改也可以直接放到JStorm運行,也可以做一些優化,JStorm比Storm更穩定、更強大、更快,去掉了很多耗費資源的代碼,在實際生產中表現更是非常突出,所以對於使用Storm計算的應用場景來說升級到JStorm更是簡單、低成本,以下使用3台服務器說一下JStorm集群的部署流程
這3台服務器的主機名分別為:bigdata1,bigdata2,bigdata3
准備工作:
1、主機名和hosts映射一一對應,設置完好!
2、防火牆關閉,保證通信暢通
3、Zookeeper集群正常運行
4、Python 2.6以上(系統一般默認都存在)
5、JDK 推薦1.8
接下來在bigdata1上操作安裝:
1、釋放storm安裝包並移動至指定目錄:
unzip jstorm-2.1.1.zip mv jstorm-2.1.1 /bigdata/jstorm/ cd /bigdata/jstorm/jstorm-2.1.1/
現在安裝目錄是/bigdata/jstorm/jstorm-2.1.1/
2、編輯配置文件,執行 vim conf/storm.yaml 打開配置文件
配置storm.zookeeper.servers為zookeeper地址
storm.zookeeper.root為jstorm在zookeeper的節點名稱
去掉nimbus.host的注釋,配置nimbus節點為bigdata1
配置storm.local.dir,表示jstorm的臨時數據存放目錄
去掉supervisor.slots.ports前面的注釋,設置supervisor節點執行worker使用的端口列表,默認為68xx,而storm是67xx
一般設置為4個就夠了,當worker太多不夠時,再增加端口進行擴展
配置完以上幾個配置,保存並退出配置文件,另外注意每一項配置必須對齊,這里每一項前面都有一個空格
配置成功之后,執行以下命令,將jstorm整體發送至其他兩個節點:
scp -r /bigdata/jstorm/ bigdata2:/bigdata/ scp -r /bigdata/jstorm/ bigdata3:/bigdata/
在當前機器,一般是nimbus,也就是提交jar包的機器上執行如下命令:
mkdir ~/.jstorm cp /bigdata/jstorm/jstorm-2.1.1/conf/storm.yaml ~/.jstorm/
建議盡量拷貝storm.yaml配置文件過去,否則可能在啟動ui和supervisor之后出現找不到supervisor節點的情況
3、配置storm ui管理界面
首先安裝好tomcat,然后將storm安裝目錄下的jstorm-ui-2.1.1.war復制到tomcat下的webapps中,就相當於tomcat容器中的一個web項目,可以放個軟鏈給ROOT這樣jstorm的管理界面就變成tomcat默認項目了,這里為默認項目,進入tomcat的webapps下執行如下命令:
mv ROOT ROOT.old ln -s jstorm-ui-2.1.1 ROOT
然后啟動tomcat服務器: /usr/local/tomcat/apache-tomcat-8.0.30/bin/startup.sh
4、啟動nimbus和supervisor
在主節點jstorm安裝目錄下執行: nohup bin/jstorm nimbus & 執行后再次執行回車回到命令行,執行 jps 能看到NimbusServer進程,則nimbus啟動成功:
在其他兩個節點分別執行: nohup bin/jstorm supervisor & 執行之后,執行 jps 可以看到Supervisor進程,則supervisor啟動成功:
訪問主節點ip查看管理界面,地址為:http://192.168.0.187:8080/
現在可以看到集群狀態,到這里Storm就安裝成功並且可以使用了