您好,登錄后才能下訂單哦!
小編給大家分享一下ubuntu多機版搭建storm環境的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
http://my.oschina.net/u/2285247/blog/546608
http://www.cnblogs.com/kemaswill/archive/2012/10/24/2737833.html
http://blog.csdn.net/rzhzhz/article/details/7448894
http://blog.csdn.net/shirdrn/article/details/7183503#t0
分布式Storm安裝,在單機版安裝基礎上進行。單機版安裝參見(http://my.oschina.net/u/2285247/blog/546608)
Storm集群包含一個中心節點Nimbus,多個從節點Supervisor。
ZooKeeper集群中具有兩個關鍵的角色:Leader和Follower。集群中所有的結點作為一個整體對分布式應用提供服務,集群中每個結 點之間都互相連接,所以,在配置的ZooKeeper集群的時候,每一個結點的host到IP地址的映射都要配置上集群中其它結點的映射信息。
例如,我的ZooKeeper集群中每個結點的配置,以mem1為例,/etc/hosts內容如下所示:
192.168.100.206 mem1 192.168.100.207 mem2 192.168.100.208 mem3
首先我們需要搭建一個Zookeeper集群,搭建過程如下:
同單機版,不單機版不同之處如下:
分別解壓至zookeepr集群機器(一般為基數臺機器)相應目錄(此處為/usr/local/),集群為mem1,mem2,mem3(hosts對應)。
分別在zookeepr集群機器上配置/usr/local/zookeeper/conf/zoo.cfg(默認是沒有此文件的,可以由zoo_sample.cfg重命名來),配置如下:
# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. dataDir=/usr/local/zookeeper/zookeeperdir/zookeeper-data dataLogDir=/usr/local/zookeeper/zookeeperdir/logs # the port at which the clients will connect clientPort=2181 server.1=mem1:2888:3888 server.2=mem2:2888:3888 server.3=mem3:2888:3888
注:dataDir是zookeeper的數據目錄,需要手動創建;dataLogDir也需要手動創建
2. 配置myid文件,在dataDir目錄下新建myid文件并設置id號(id號直接寫入myid文件)
id號即為zoo.cfg文件中server.后的數字,如server.1=mem1:2888:3888即表示mem1機器中的myid號為1,server.2=mem2:2888:3888即表示mem2器中的myid號為2。
啟動
分別在zookeepr集群機執行下面命令:
cd /usr/local/zookeeper/ bin/zkServer.sh start
注:一開始啟動的時候會報錯,提示連不上集群其他成員。此時是正常信息,等所有集群成員都啟動后,該錯誤信息便會消失。
2. 查看集群狀態
/usr/local/zookeeper/bin/zkServer.sh status
如果正常啟動會提示如下信息:
[root@mem1 zookeeper]$ bin/zkServer.sh status JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Mode: follower |
如果報錯如下信息:
JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Error contacting service. It is probably not running. |
執行
root@mem1:/usr/local/zookeeper/bin# tail -f zookeeper.out 查看日志
解決辦法:
Sudo vi /etc/hosts
注釋掉:127.0.0.1 開始的行,重啟zookeeper 搞定!
或者jps查看是否有QuorumPeerMain服務,如存在則已經啟動。
我們在Storm的每個節點上安裝Python,ZeroMQ,jzmq,Storm(安裝過程同單機相同)。
配置每個節點的Storm(zookeeper節點不需要,根據前人經驗,每行要以空格開始,冒號后要有空格!):
配置conf/storm.yaml文件,如下:
nimbus.host: "nimbus" storm.local.dir: "/usr/local/apache-storm-0.10.0/local/dir" storm.zookeeper.servers: - "mem1" - "mem2" - "mem3" storm.zookeeper.port: 2181
備注:
其中nimbus.host為Nimbus節點的主機名或IP地址。
storm.local.dir為存儲相關信息比如jar,topology等的目錄,需要手動創建。
storm.zookeeper.servers為zookeeper集群的主機名或IP地址。
storm.zookeeper.port為Zookeeper服務的端口號,要和你的Zookeeper服務的端口號一致(2181是默認的)。
以上配置需要在每個節點,包括Nimbus和Supervisor上配置,且前三項是必須的,第二項如果不設置會報Connection Refused錯誤。
在Nimbus節點上的~/.storm/storm.yaml配置(沒有該文件的話創建之):
nimbus.host: "nimbus"
到這里Storm集群就配置完畢了。
在Nimbus節點上啟動Nimbus服務:
cd /usr/local/apache-storm-0.10.0 bin/storm nimbus &
加&是為了在后臺運行,否則當前的終端就不能再輸入命令了
在Nimbus節點上啟動UI,這樣就可以通過瀏覽器在http://nimbus-host:8080上觀察整個Storm集群以及Topology的運行情況
bin/storm ui &
在Supervisor節點上啟動Supervisor:
bin/storm supervisor &
這樣整個Storm集群便啟動了。
Storm集群的測試依然可以使用我們單機版之前用過的StormStarter.jar,在Nimbus節點上執行:
storm jar StormStarter.jar storm.starter.ExclamationTopology exclamation
注意,與單機版Storm不同的是,我們在主類ExclamationTopology后面加了一個字符串 exclamation,該字符串是任意的,用來在集群中標示這個Topology,如果不填加這個字符串則該Topology會在單機環境下運行。
以上是“ubuntu多機版搭建storm環境的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。