一、簡介
Apache Storm分布式集群主要節點由控制節點(Nimbus節點)和工作節點(Supervisor節點),控制節點可以一個,工作節點多個組成的,而Zookeeper主要負責Nimbus節點和Supervisor節點之間的協調工作。
Nimbus: Nimbus節點負責資源分配和任務分配我們運行拓撲,通過命令storm jar提交拓撲,會提交到Nimbus,Nimbus分發任務給Supervisor,並監控着Supervisor狀態,如果Supervisor掛起,會把任務重新分給其它Supervisor。
Supervisor:Supervisor節點定期接受Nimbus節點分配任務,並會從Nimbus下載代碼,並啟動對應的worker進程,並監控着worker的心跳,如果worker因內存溢出或者其它原因導致worker掛掉,Supervisor會重新啟動worker。
Storm ui是storm集群的監控頁面,可以查看Nimbus、Supervisor分布情況以及狀態等信息,方便我們管理Storm集群以及拓撲。
二、Storm 集群部署
1、兩個虛擬機:192.168.2.200、192.168.2.201
1)Storm 下載地址:http://storm.apache.org/downloads.html ,我下載的是版本apache-storm-1.1.0.tar.gz
2)對兩個虛擬機分別解壓
> tar -xzf apache-storm-1.1.0.tar.gz > cd apache-storm-1.1.0/conf
2、配置 conf/storm.yaml 文件
1)配置連接zookeeper的地址,默認端口是2181,可以修改對應的zookeeper端口
storm.zookeeper.port storm.zookeeper.servers: - "Master" - "Salve2"
2)配置nimbus的地址
nimbus.seeds: ["Master"]
3)配置nimbus
配置supervisor節點上每個worker使用的監聽端口,每個worker都有一個獨立監聽端口,一個supervisor默認4個端口。
supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703
4)配置ui端口
ui.port: 8081
3、Storm的集群的狀態信息(Nimbus分發的任務、Supervisor、worker的心跳等)都保存在Zookeeper上,通過zookeeper的分布式系統協調來保證Storm集群的穩定性。Zookeeper的安裝配置、並啟動zookeeper。
4、zookeeper集群先啟動,然后啟動192.168.2.200、192.168.2.201虛擬機上的storm的ui、nimbus、supervisor。
>bin/storm nimbus >/dev/null 2>&1 & >bin/storm supervisor >/dev/null 2>&1 & >bin/storm ui >/dev/null 2>&1 &
我們訪問storm管理頁面http://ip:端口/index.html,Storm ui是storm集群的監控頁面,可以查看Nimbus、Supervisor分布情況以及狀態等信息,方便我們管理Storm集群以及拓撲
三、問題
org.apache.storm.utils.NimbusLeaderNotFoundException: Could not find leader nimbus from seed hosts ["192.168.2.200"]. Did you specify a valid list of nimbus hosts for config nimbus.seeds?
刪除zookeeper對應的storm信息,並重啟zookeeper就可以了
第一:先登錄zookeeper
>bin/zkCli.sh
第二步:刪除對應的storm
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。