1.安裝zookeeper
3.1下載zookeeper安裝包,
建議下載3.4.5及以上的版本
http://www.apache.org/dyn/closer.cgi/zookeeper/
3.2、下載完畢之后,解壓文件
tar -zxvf zookeeper-3.4.7.tar.gz -C /export/servers/
cd /export/servers
ln -s zookeeper-3.4.7 zookeeper
修改配置文件
cd /export/servers/zookeeper/conf
mv zoo_sample.cfg zoo.cfg
vi zoo.cfg
輸入以下內容:
#基本事件單元,以毫秒為單位。它用來控制心跳和超時,默認情況下最小的會話超時時間為兩倍的 tickTime tickTime=2000
#此配置表示,允許 follower (相對於 leader 而言的“客戶端”)連接並同步到 leader 的初始化連接時間,它以 tickTime 的倍數來表示。當超過設置倍數的 tickTime 時間,則連接失敗 initLimit=10
#此配置表示, leader 與 follower 之間發送消息,請求和應答時間長度。如果 follower 在設置的時間內不能與 leader 進行通信,那么此 follower 將被丟棄 syncLimit=5
#數據目錄. 可以是任意目錄,其中的dataDir目錄和dataLogDir需要提前建立好 #注意 應該謹慎地選擇日志存放的位置,使用專用的日志存儲設備能夠大大地提高系統的性能,如果將日志存儲在比較繁忙的存儲設備上,那么將會在很大程度上影響系統的性能。 dataDir=/export/servers/data/zookeeper
#log目錄, 同樣可以是任意目錄. 如果沒有設置該參數, 將使用和dataDir相同的設置,其中的dataDir目錄和dataLogDir需要提前建立好 #注意 應該謹慎地選擇日志存放的位置,使用專用的日志存儲設備能夠大大地提高系統的性能,如果將日志存儲在比較繁忙的存儲設備上,那么將會在很大程度上影響系統的性能。 dataLogDir=/export/servers/logs/zookeeper
#監聽client連接的端口號. clientPort=2181
#這個操作將限制連接到 ZooKeeper 的客戶端的數量,限制並發連接的數量,它通過 IP 來區分不同的客戶端。此配置選項可以用來阻止某些類別的 Dos 攻擊。將它設置為 0 或者忽略而不進行設置將會取消對並發連接的限制。 maxClientCnxns=0
#最小的會話超時時間以及最大的會話超時時間。 #其中,最小的會話超時時間默認情況下為 2 倍的 tickTme 時間 #最大的會話超時時間默認情況下為 20 倍的會話超時時間 minSessionTimeout=4000 maxSessionTimeout=10000
#server.X=A:B:C 其中X是一個數字, 表示這是第幾號server. A是該server所在的IP地址. B配置該server和集群中的leader交換消息所使用的端口. C配置選舉leader時所使用的端口. #在之前設置的dataDir中新建myid文件, 寫入一個數字, 該數字表示這是第幾號server. 該數字必須和zoo.cfg文件中的server.X中的X一一對應. server.1=192.168.52.106:2888:3888 server.2=192.168.52.107:2888:3888 server.3=192.168.52.108:2888:3888
|
創建zk的數據目錄和日志目錄
mkdir -p /export/servers/data/zookeeper
mkdir -p /export/servers/logs/zookeeper
3.5、在數據目錄下創建zk節點的編號
在上文中 /export/servers/data/zookeeper 的目錄下,創建myid文件。
myid文件的內容,根據所屬主機編號來編寫。
解釋:
創建數據目錄,也就是在你zoo.cfg配置文件里dataDir指定的那個目錄下創建myid文件,並且指定id,改id為你zoo.cfg文件中server.1=localhost:2887:3887中的1.只要在myid頭部寫入1即可.
3.6、分發修改后的安裝文件
scp zookeeper-3.4.6 hadoop02:/export/servers/
scp zookeeper-3.4.6 hadoop03:/export/servers/
3.7、在分發后的機器上,執行步驟5的操作。
創建數據目錄,也就是在你zoo.cfg配置文件里dataDir指定的那個目錄下創建myid文件,並且指定id,改id為你zoo.cfg文件中server.1=localhost:2887:3887中的1.只要在myid頭部寫入1即可.
3.8、在所有 所有 所有機器上配置環境變量
#set ZK env
export ZK_HOME=/export/servers/zk
export PATH=${ZK_HOME}/bin:$PATH
3.9、在所有 所有 所有機器上讓配置文件生效
source /etc/profile
3.10、啟動zk集群
依次在不同的節點上,輸入zkServers.sh start
出現錯誤后,可參考:http://maoxiangyi.cn/index.php/archives/121
3.11、查看zk集群的狀態
依次在不同的節點上,輸入zkServers.sh status
只有一個主節點,leader 其他都是follow
4、安裝storm
4.1、下載安裝包
4.2、解壓安裝包
tar -zxvf apache-storm-0.9.5.tar.gz -C /export/servers/
cd /export/servers/
ln -s apache-storm-0.9.5 storm
4.3、修改配置文件
mv /export/servers/storm/conf/storm.yaml /export/servers/storm/conf/storm.yaml.bak
vi /export/servers/storm/conf/storm.yaml
輸入以下內容:
#指定storm使用的zk集群 storm.zookeeper.servers: - "zk01" - "zk02" - "zk03" #指定storm集群中的nimbus節點所在的服務器 nimbus.host: "storm01" #指定nimbus啟動JVM最大可用內存大小 nimbus.childopts: "-Xmx1024m" #指定supervisor啟動JVM最大可用內存大小 supervisor.childopts: "-Xmx1024m" #指定supervisor節點上,每個worker啟動JVM最大可用內存大小 worker.childopts: "-Xmx768m" #指定ui啟動JVM最大可用內存大小,ui服務一般與nimbus同在一個節點上。 ui.childopts: "-Xmx768m" #指定supervisor節點上,啟動worker時對應的端口號,每個端口對應槽,每個槽位對應一個worker supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703 |
4.4、分發安裝包
scp -r /export/servers/apache-storm-0.9.5 storm02:/export/servers
然后分別在各機器上創建軟連接
cd /export/servers/
ln -s apache-storm-0.9.5 storm
4.5、啟動集群
l 在nimbus.host所屬的機器上啟動 nimbus服務
cd /export/servers/storm/bin/
nohup ./storm nimbus &
l 在nimbus.host所屬的機器上啟動ui服務
cd /export/servers/storm/bin/
nohup ./storm ui &
l 在其它個點擊上啟動supervisor服務
cd /export/servers/storm/bin/
nohup ./storm supervisor &
4.6、查看集群
訪問nimbus.host:/8080,即可看到storm的ui界面。
4.7、Storm常用操作命令
有許多簡單且有用的命令可以用來管理拓撲,它們可以提交、殺死、禁用、再平衡拓撲。
l 提交任務命令格式:storm jar 【jar路徑】 【拓撲包名.拓撲類名】 【拓撲名稱】
bin/storm jar examples/storm-starter/storm-starter-topologies-0.10.0.jar storm.starter.WordCountTopology wordcount
l 殺死任務命令格式:storm kill 【拓撲名稱】 -w 10(執行kill命令時可以通過-w [等待秒數]指定拓撲停用以后的等待時間)
storm kill topology-name -w 10
l 停用任務命令格式:storm deactivte 【拓撲名稱】
storm deactivte topology-name
我們能夠掛起或停用運行中的拓撲。當停用拓撲時,所有已分發的元組都會得到處理,但是spouts的nextTuple方法不會被調用。銷毀一個拓撲,可以使用kill命令。它會以一種安全的方式銷毀一個拓撲,首先停用拓撲,在等待拓撲消息的時間段內允許拓撲完成當前的數據流。
l 啟用任務命令格式:storm activate【拓撲名稱】
storm activate topology-name
l 重新部署任務命令格式:storm rebalance 【拓撲名稱】
storm rebalance topology-name
再平衡使你重分配集群任務。這是個很強大的命令。比如,你向一個運行中的集群增加了節點。再平衡命令將會停用拓撲,然后在相應超時時間之后重分配工人,並重啟拓撲。