在虛擬機器搭建JStrom

來源:互聯網
上載者:User

標籤:dt.jar   sudo   replace   rabbit   本地ip   processor   檔案   details   sam   

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

  • 一 安裝步驟
  • 二 搭建Zookeeper叢集
    • 1 ZooKeeper 單機安裝與配置
      • 11 下載zookeeper安裝包
      • 12 解壓zookeeper安裝包
      • 13 設定環境變數
      • 14 配置zoocfg
      • 15 啟動zookeeper
  • 三 搭建JStorm叢集
    • 1 安裝Python 26
    • 2 安裝JDK 17 版本
    • 3 安裝JStorm
      • 31 配置JSTORM_HOMEconfstormyaml
      • 32 例子
      • 33 在提交jar的節點上執行
    • 4 在tomcat伺服器安裝JStorm Web UI4
    • 5 啟動JStorm
  • 四 更多連結
    • 1 Zookeeper知識更多連結
    • 2 JStorm知識更多連結

 

一 安裝步驟
  • 從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.gz

2.1.2 解壓zookeeper安裝包
wu_being@JStorm-VirtualBox:~$ sudo tar -zxvf zookeeper-3.4.5.tar.gzwu_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檔案後添加如下資訊3:

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

設定環境變數/home/wu_being/.bashrc檔案後,要source 更新一下: 
[email protected]:~$source /home/wu_being/.bashrc 
[email protected]:~$source /etc/profile 

2.1.4 配置zoo.cfg

設定檔存放在$ZOOKEEPER_HOME/conf/目錄下,將zoo_sample.cfd檔案名稱改為zoo.cfg(cp zoo_sample.cfg zoo.cfg), 預設的配置內容如下:

# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial# synchronization phase can takeinitLimit=10# The number of ticks that can pass between# sending a request and getting an acknowledgementsyncLimit=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 connectclientPort=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 會監聽這個連接埠,接受用戶端的訪問請求。 
 

2.1.5 啟動zookeeper

當這些配置項配置好後,你現在就可以啟動zookeeper了:

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檔案。

三 搭建JStorm叢集3.1 安裝Python 2.6
  • 如果當前系統提供Python,可以不用安裝Python
  • 自己可以參考 python
  • 也可以使用https://github.com/utahta/pythonbrew 來安裝python > curl -kL http://xrl.us/pythonbrewinstall | bash
-s $HOME/.pythonbrew/etc/bashrc && source $HOME/.pythonbrew/etc/bashrcpythonbrew install 2.6.7pythonbrew switch 2.6.7
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3
3.2 安裝JDK (1.7 版本)

注意,如果當前系統是64位系統,則需要下載64位JDK,如果是32為系統,則下載32位JDK

3.3 安裝JStorm

假設以jstorm-0.9.6.3.zip為例

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

注意:[email protected]:~$ 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的是67xx7. 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 ~/.jstormcp -f $JSTORM_HOME/conf/storm.yaml ~/.jstormtar -xzf apache-tomcat-7.0.70.tar.gz   ###cd apache-tomcat-7.0.70cd 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知識更多連結
  • ZooKeeper 是什麼
  • 為什麼要使用ZooKeeper
  • Zookeeper系列教材
4.2 JStorm知識更多連結
    • alibaba/jstorm 
      https://github.com/alibaba/jstorm/wiki
    • jstorm 介紹 
      https://yq.aliyun.com/articles/2893
    • jstorm 2.1.1 release 
      https://yq.aliyun.com/articles/25391
    • Kafka、RabbitMQ、RocketMQ訊息中介軟體的對比——訊息發送效能 
      https://yq.aliyun.com/articles/25385
    • Hadoop之MapReduce 
      http://blog.csdn.net/wangloveall/article/details/21407531

在虛擬機器搭建JStrom

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.