Storm叢集搭建(1.2.2版本)
storm叢集部署(1.2.2版本)
前提環境
CentOS release 6.4 (Final)+JDK8+Python 2.6.6
叢集部署
設定zookeeper叢集
略
機器要求環境
Java 7+(Apache Storm 1.x通過travis ci對java 7和java 8 JDK進行測試)
Python 2.6.6(Python 3.x也應該工作,但不作為CI環境的一部分進行測試)
這些是使用Storm測試的依賴項的版本。 Storm可能適用於不同版本的Java和/或Python,也可能不適用。
storm版本獲取
解壓並配置STORM_HOME
STORM_HOME=/data/apache-storm-1.2.2
PATH=$STORM_HOME/bin:$PATH
export PATH
配置storm.yaml
storm.zookeeper.servers:
- "server1"
- "server2"
- "server3"
storm.local.dir: "/data/apache-storm-1.2.2/storm-local"
nimbus.seeds: ["server3"]
ui.port: 18080
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
storm.health.check.dir: "healthchecks"
storm.health.check.timeout.ms: 5000
說明:
- 配置zookeeper叢集地址
storm.zookeeper.servers:
- "server1"
- "server2"
- "server3"
storm.local.dir
:Nimbus和Supervisor守護程序需要本地磁碟上的目錄來儲存少量狀態(如jar,confs和類似的東西)。 您應該在每臺計算機上建立該目錄,為其提供適當的許可權,然後使用此配置填寫目錄位置。 例如:
storm.local.dir: "/data/storm"
nimbus.seeds
:工作節點需要知道哪些機器是主機的候選者才能下載拓撲jar和confs。
nimbus.seeds: ["server1"]
我們鼓勵您將值填寫到機器的FQDN列表中。 如果要設定Nimbus H/A,則必須解決執行nimbus的所有計算機的FQDN。 當您只想設定“偽分散式”群集時,您可能希望將其保留為預設值,但仍鼓勵您填寫FQDN。supervisor.slots.ports
:對於每個工作者計算機,您可以使用此配置配置在該計算機上執行的工作程式數。 每個工作人員使用單個埠接收訊息,此設定定義哪些埠可以使用。 如果您在此處定義了五個埠,那麼Storm將分配最多五個工作人員在此計算機上執行。 如果定義三個埠,Storm最多隻能執行三個埠。 預設情況下,此設定配置為在埠6700,6701,6702和6703上執行4個工作程式。例如:
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
- 健康狀況檢查
Storm提供了一種機制,管理員可以通過該機制將管理員定期執行管理員提供的指令碼,以確定節點是否健康。管理員可以讓主管通過在storm.health.check.dir
中的指令碼中執行他們選擇的任何檢查來確定節點是否處於健康狀態。如果指令碼檢測到節點處於不健康狀態,則必須以字串ERROR開頭的標準輸出行。主管將定期執行執行狀況檢查目錄中的指令碼並檢查輸出。如果指令碼的輸出包含字串ERROR,如上所述,主管將關閉所有工作人員並退出。如果主管在監督下執行,則可以呼叫/bin/storm node-health-check
來確定是否應該啟動主管或節點是否執行狀況不佳。執行狀況檢查目錄位置可以配置為:storm.health.check.dir: "healthchecks"
指令碼必須具有執行許可權。允許任何給定的執行狀況檢查指令碼在由於超時而標記為失敗之前執行的時間可以配置為:storm.health.check.timeout.ms: 5000
啟動節點
nimbus上的啟動指令碼
nohup /root/apache-storm-1.2.2/bin/storm nimbus > /dev/null &
nohup /root/apache-storm-1.2.2/bin/storm ui > /dev/null &
nohup /root/apache-storm-1.2.2/bin/storm logviewer > /dev/null &
supervisor上啟動指令碼
nohup /root/apache-storm-1.2.2/bin/storm supervisor > /dev/null &
nohup /root/apache-storm-1.2.2/bin/storm logviewer > /dev/null &
UI訪問:可以通過將Web瀏覽器導航到http://{ui host}:8080來訪問UI。
關閉程式:可以使用jps檢視pid來kill。
配置外部庫和環境變數(可選)
如果需要外部庫或自定義外掛的支援,可以將這些jar放入extlib/
和extlib-daemon/
目錄中。 請注意,extlib-daemon/
目錄儲存僅由守護程式(Nimbus,Supervisor,DRPC,UI,Logviewer)使用的jar,例如HDFS和自定義排程庫。 因此,使用者可以配置兩個環境變數STORM_EXT_CLASSPATH和STORM_EXT_CLASSPATH_DAEMON,以包括外部類路徑和僅守護程序的外部類路徑。