學習過程中,不要強烈追求集群,有個單機就夠了,單機好了,再學習集群,否則都把時間浪費在了集群搭建上,還影響心情,影響我們核心內容的學習。你自己搞的小破集群也沒有什麼用,與生產環境的差別大了,還需要深入研究,才能搭建一個可以應用於生產環境的集群。
一、Storm單機環境搭建
我們先看下官網是如何介紹的?
http://storm.apache.org/releases/1.1.2/Setting-up-a-Storm-cluster.html
Here's a summary of the steps for setting up a Storm cluster:
- Set up a Zookeeper cluster
- Install dependencies on Nimbus and worker machines
- Download and extract a Storm release to Nimbus and worker machines
- Fill in mandatory configurations into storm.yaml
- Launch daemons under supervision using "storm">
1、基礎環境準備
Install dependencies on Nimbus and worker machines
Next you need to install Storm's dependencies on Nimbus and the worker machines. These are:
- Java 7+ (Apache Storm 1.x is tested through travis ci against both java 7 and java 8 JDKs)
- Python 2.6.6 (Python 3.x should work too, but is not tested as part of our CI enviornment)
簡而言之:
jdk:1.7+
python:2.6+
1)JDK環境
java -version
關於具體安裝,這裡就不說了,太簡單了
2)Python環境
python --version
註釋:默認機器都安裝了Python(2.6.6)
3)ZooKeeper環境
storm自帶了一個開發版的ZK,也不需要自己去部署,配置都不需要,極其簡單的,這也是Storm的一個好處,基本上是開箱即用的。
2、單機環境搭建
在Linux下安裝軟件無非就這幾個步驟
1)下載
我們課程使用的Storm版本是:1.1.2
cd /usr/local/src/
wget http://mirrors.hust.edu.cn/apache/storm/apache-storm-1.1.2/apache-storm-1.1.2.tar.gz
2)解壓
tar -zxvf apache-storm-1.1.2.tar.gz
mv apache-storm-1.1.2 ../
3)配置環境變量
vim /etc/profile
export STORM_HOME=/usr/local/apache-storm-1.1.2
export PATH=$STORM_HOME/bin:$PATH
source /etc/profile
4)基本配置
storm-env.sh
建議配置下JAVA_HOME:防止沒有配環境變量
export JAVA_HOME=/usr/local/jdk1.8.0_181
5)啟動
我們先不過多講解storm.yaml,我們先吧storm啟動起來
$STORM_HOME/bin/storm 如何使用 執行storm就能看到很多詳細的命令
- 啟動我們內置的zookeeper
nohup sh $STORM_HOME/bin/storm dev-zookeeper &
[root@jikeh src]# nohup sh $STORM_HOME/bin/storm dev-zookeeper &
[1] 2122
[root@jikeh src]# nohup: ignoring input and appending output to `nohup.out'
^C
註釋:當執行完後,通過ctrl+c來結束命令
此時,jps查看當前進程信息:
[root@jikeh src]# jps
2160 Jps
2150 config_value
註釋:中間會有個config_value進程過濾
最終的進程信息為:
[root@jikeh src]# jps
2213 Jps
2122 dev_zookeeper
[root@jikeh src]# jps -l
2228 sun.tools.jps.Jps
2122 org.apache.storm.command.dev_zookeeper
- 啟動nimbus
nohup sh $STORM_HOME/bin/storm nimbus &
[root@jikeh src]# jps -l
2248 org.apache.storm.daemon.nimbus
2425 sun.tools.jps.Jps
2122 org.apache.storm.command.dev_zookeeper
註釋:啟動了nimbus進程
- 啟動supervisor
nohup sh $STORM_HOME/bin/storm supervisor &
[root@jikeh src]# jps
2435 Supervisor
2248 nimbus
2122 dev_zookeeper
2539 Jps
[root@jikeh src]# jps -l
2435 org.apache.storm.daemon.supervisor.Supervisor
2549 sun.tools.jps.Jps
2248 org.apache.storm.daemon.nimbus
2122 org.apache.storm.command.dev_zookeeper
註釋:啟動了Supervisor進程
- 啟動ui界面:storm的web ui界面
nohup sh $STORM_HOME/bin/storm ui &
[root@jikeh src]# jps
2435 Supervisor
2248 nimbus
2122 dev_zookeeper
2655 Jps
2559 core
[root@jikeh src]# jps -l
2435 org.apache.storm.daemon.supervisor.Supervisor
2248 org.apache.storm.daemon.nimbus
2665 sun.tools.jps.Jps
2122 org.apache.storm.command.dev_zookeeper
2559 org.apache.storm.ui.core
註釋:啟動了core進程
- 啟動logview日誌查看服務:方便查看各組件的運行日誌
nohup sh $STORM_HOME/bin/storm logviewer &
[root@jikeh src]# jps
2675 logviewer
2435 Supervisor
2774 Jps
2248 nimbus
2122 dev_zookeeper
2559 core
[root@jikeh src]# jps -l
2784 sun.tools.jps.Jps
2675 org.apache.storm.daemon.logviewer
2435 org.apache.storm.daemon.supervisor.Supervisor
2248 org.apache.storm.daemon.nimbus
2122 org.apache.storm.command.dev_zookeeper
2559 org.apache.storm.ui.core
註釋:啟動了logviewer進程
啟動了上述命令時候,默認會在storm的安裝目錄生產一個logs的文件夾,存放運行日誌的一些信息,對於拍錯是很有用的
6)Storm UI界面初探:
訪問端口:默認端口為8080
http://192.168.199.147:8080/index.html
界面參數介紹:
- slot是個什麼東西,之前我們沒有見過呀?
註釋:
Total slots:Total number of Slots. Slots are Workers (processes).
slot=worker,slot就是worker;
Used slots:當前使用的worker。此時我們沒有提交拓撲,肯定就是0了
Free slots:當前可分配的worker。
- slot為什麼是4個呢?
默認配置文件中,配置的就是4個,之後我們會詳細解釋如何調整該數量
- nimbus為什麼會有兩個呢?
因為1.x版本之後,為了實現高可用ha功能,內部默認配置一個備用節點,0.x版本都是單點的。
- logview上查看nimbus、supervisor的運行日誌
注意需要配置下本地hosts:
192.168.199.147 jikeh
還有一點需要注意:這個域名不要與你計算機名,否則在Windows下是ping不通,無法解析的,Linux沒有該問題!!!
7)錯誤
一定要配置hosts:服務器
原因Storm會通過主機名來進行網絡訪問==>必須配置hosts,否則將會啟動失敗!!!
vim /etc/hosts
127.0.0.1 your hostname
下篇,我們將在我們搭建的環境上部署storm程序,並詳解Storm UI界面,簡單介紹下三節點Storm集群環境的搭建!!!
閱讀更多 極客慧 的文章