在虛擬機搭建JStrom

原文:http://blog.csdn.net/u014134180/article/details/51810311html

 

一 安裝步驟

  • Downloads下載relase包(jstorm-2.1.1.zip)
  • 要先配製 Java JDK
  • 搭建Zookeeper集羣
  • 安裝Python 2.6
  • 配置$JSTORM_HOME/conf/storm.yaml
  • 搭建Web UI
  • 啓動JStorm集羣

二 搭建Zookeeper集羣

  • 安裝步驟麻煩參考 」Zookeeper 簡易安裝步驟1
  • Zookeeper配置麻煩參考 「Zookeeper單機模式、僞集羣模式、集羣模式的安裝2

2.1 ZooKeeper 單機安裝與配置

2.1.1 下載zookeeper安裝包

下載地址:http://apache.dataguru.cn/zookeeper/zookeeper-3.4.3/zookeeper-3.4.3.tar.gz 
我這裏下載的是:zookeeper-3.4.5.tar.gzjava

2.1.2 解壓zookeeper安裝包

wu_being@JStorm-VirtualBox:~$ sudo tar -zxvf zookeeper-3.4.5.tar.gz wu_being@JStorm-VirtualBox:~$ sudo chown -R wu_being:wu_being zookeeper-3.4.5
  • 1
  • 2
  • 1
  • 2

這裏寫圖片描述

2.1.3 設置環境變量

在/etc/profile和/home/wu_being/.bashrc文件後添加以下信息3python

JAVA_HOME=/home/wu_being/jdk1.7.0 ZOOKEEPER_HOME=/home/wu_being/zookeeper-3.4.5 CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$ZOOKEEPER_HOME/lib PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH export ZOOKEEPER_HOME export JAVA_HOME export CLASSPATH export PATH
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

這裏寫圖片描述

設置環境變量/home/wu_being/.bashrc文件後,要source 更新一下: 
wu_being@JStorm-VirtualBox:~$source /home/wu_being/.bashrc 
wu_being@JStorm-VirtualBox:~$source /etc/profile 
這裏寫圖片描述git

2.1.4 配置zoo.cfg

配置文件存放在$ZOOKEEPER_HOME/conf/目錄下,將zoo_sample.cfd文件名稱改成zoo.cfg(cp zoo_sample.cfg zoo.cfg), 缺省的配置內容以下:github

# 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. # do not use /tmp for storage, /tmp here is just # example sakes. #####這是我修改後的 dataDir=/home/wu_being/zookeeper-3.4.5/data # the port at which the clients will connect clientPort=2181 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

配置說明: 
tickTime:這個時間是做爲 Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每一個 tickTime 時間就會發送一個心跳。 
dataDir:顧名思義就是 Zookeeper 保存數據的目錄,默認狀況下,Zookeeper 將寫數據的日誌文件也保存在這個目錄裏。 
clientPort:這個端口就是客戶端鏈接 Zookeeper 服務器的端口,Zookeeper 會監聽這個端口,接受客戶端的訪問請求。 
這裏寫圖片描述 
這裏寫圖片描述web

2.1.5 啓動zookeeper

當這些配置項配置好後,你如今就能夠啓動zookeeper了:apache

wu_being@JStorm-VirtualBox:~/ netstat -at|grep 2181 #查看zookeeper端口 wu_being@JStorm-VirtualBox:~/ netstat -nat #查看端口信息 wu_being@JStorm-VirtualBox:~/zookeeper-3.4.5/bin$ ./zkServer.sh start #啓動 wu_being@JStorm-VirtualBox:~/zookeeper-3.4.5/bin$ jps #查看啓動的服務名稱 wu_being@JStorm-VirtualBox:~/zookeeper-3.4.5/bin$ ./zkServer.sh stop #關閉
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

注:jps命令是Java jdk中的,啓動zkServer也是要先配製好Java jdk,否則啓動成功也是假現象的!!!瀏覽器

  • jps自己服務名稱:4793 Jps
  • zkServer服務名稱:4464 QuorumPeerMain

這裏寫圖片描述

啓動後要檢查 Zookeeper 是否已經在服務,能夠經過 netstat -at|grep 2181命令查看是否有 clientPort 端口號在監聽服務。並在zookeeper-3.4.5生成data文件夾,data文件夾version-2文件夾和zookeeper_server.pid文件。tomcat

這裏寫圖片描述

三 搭建JStorm集羣

3.1 安裝Python 2.6

-s $HOME/.pythonbrew/etc/bashrc && source $HOME/.pythonbrew/etc/bashrc pythonbrew install 2.6.7 pythonbrew switch 2.6.7
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

3.2 安裝JDK (1.7 版本)

注意,若是當前系統是64位系統,則須要下載64位JDK,若是是32爲系統,則下載32位JDKruby

3.3 安裝JStorm

假設以jstorm-0.9.6.3.zip爲例

unzip jstorm-2.1.1.zip vi ~/.bashrc export JSTORM_HOME=/home/wu_being/jstorm-2.1.1 export PATH=$PATH:$JSTORM_HOME/bin
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

注意:wu_being@JStorm-VirtualBox:~$ source .bashrc 
這裏寫圖片描述

3.3.1 配置$JSTORM_HOME/conf/storm.yaml

配置項:

1. storm.zookeeper.servers: 表示zookeeper 的地址, 2. nimbus.host: 表示nimbus的地址 3. storm.zookeeper.root: 表示JStorm在zookeeper中的根目錄,當多個JStorm共享一個zookeeper時,須要設置該選項,默認即爲「/jstorm」 4. storm.local.dir: 表示JStorm臨時數據存放目錄,須要保證JStorm程序對該目錄有寫權限 5. java.library.path: Zeromq 和java zeromq library的安裝目錄,默認"/usr/local/lib:/opt/local/lib:/usr/lib" 6. supervisor.slots.ports: 表示Supervisor 提供的端口Slot列表,注意不要和其餘端口發生衝突,默認是68xx,而Storm的是67xx 7. topology.enable.classloader: false, 默認關閉classloader,若是應用的jar與JStorm的依賴的jar發生衝突,好比應用使用thrift9,但jstorm使用thrift7時,就須要打開classloader。建議在集羣級別上默認關閉,在具體須要隔離的topology上打開這個選項。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3.3.2 例子

########### These MUST be filled in for a storm configuration storm.zookeeper.servers: - "172.17.21.33" storm.zookeeper.root: "/jstorm" nimbus.host: "172.17.21.33" nimbus.host.start.supervisor: false nimbus.childopts: "-Xmx256m" supervisor.childopts: "-Xmx256m" worker.childopts: "-Xmx128m" storm.local.dir: "%JSTORM_HOME%/data" supervisor.slots.ports: - 6800 - 6801 - 6802 - 6803 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

這裏寫圖片描述

3.3.3 在提交jar的節點上執行

#mkdir ~/.jstorm #cp -f $JSTORM_HOME/conf/storm.yaml ~/.jstorm
  • 1
  • 2
  • 1
  • 2

3.4 在tomcat服務器安裝JStorm Web UI4

必須使用tomcat 7.0 或以上版本, 注意不要忘記拷貝 ~/.jstorm/storm.yaml

Web UI 能夠和Nimbus不在同一個節點

mkdir ~/.jstorm cp -f $JSTORM_HOME/conf/storm.yaml ~/.jstorm tar -xzf apache-tomcat-7.0.70.tar.gz ### cd apache-tomcat-7.0.70 cd webapps cp $JSTORM_HOME/jstorm-ui-2.1.1.war ./ mv ROOT ROOT.old ### ln -s jstorm-ui-2.1.1 ROOT ### cd ../bin ./startup.sh #####
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

注意:

  • 下載tomcat 7.x (以apache-tomcat-7.0.70 爲例)
  • ln不是 ln -s jstorm-ui-2.1.1.war ROOT 這個要當心
  • startup.sh後,在終端輸入jps會多一個服務名稱:4777 Bootstrap
  • 在瀏覽器輸入「本地ip:8080」能夠在web管理JStorm集羣。前提是配製好.jstorm/storm.yaml 文件,並啓動zookeeper,最好先啓動nimbus和supervisor服務器。

這裏寫圖片描述
這裏寫圖片描述

3.5 啓動JStorm

  • 在nimbus 節點上執行 nohup jstorm nimbus &, 查看$JSTORM_HOME/logs/nimbus.log檢查有無錯誤
  • 在supervisor節點上執行 nohup jstorm supervisor &, 查看$JSTORM_HOME/logs/supervisor.log檢查有無錯誤

這裏寫圖片描述

四 更多連接

4.1 Zookeeper知識更多連接

4.2 JStorm知識更多連接

相關文章
相關標籤/搜索