從頭安裝jstorm
創建安裝目錄
當前在桌面創建work目錄
# mkdir /work/jstrom
# cd /work/jstrom
安裝jdk(需要jdk1.5以上)
- 下載:訪問Oracle官網 http://www.oracle.com,在頁面的底部Download Java for Develops,同時選擇Accept Lisence Agreement,下載後點擊即可以安裝
Mac下安裝地址:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
(當前安裝版本爲1.8.0_131) - 配置環境變量
vi ~/.bash_profile
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home"
- 查看安裝結果
java -version
顯示結果爲以下則說明安裝成功
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
安裝python(需要2.6以上)
Mac自帶python,可以通過python命令來進行查看
如果需要重新安裝
(1)brew install python
(2)官網下載安裝 https://www.python.org/download
通過which python查看python的安裝位置
安裝ZooKeeper
- 下載並解壓:當前安裝版本3.4.12
(1)從Apache網站(http://zookeeper.apache.org/releases.html)上下載zookeeper
(2)命令行下載
# wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz
# sudo tar -zxvf zookeeper-3.4.12.tar.gz
- 配置環境變量
可以在~/.bash_profile或者 ~/.bashrc中進行配置
terminal運行vi ~/.bash_profile
# export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home"
ZOOKEEPER_HOME=/Users/.../work/jstorm/zookeeper-3.4.12
# export PATH="$PATH:$ZOOKEEPER_HOME"
- 關閉當前terminal或者運行一下命令使環境變量生效
source ~/.bash_profile
4.可以運行cd和pwd檢查環境變量是否配置正確
# cd $ZOOKEEPER_HOME
# pwd //查看當前目錄
- 添加zoo.cfg配置
# cd $ZOOKEEPER_HOME/conf/
# cp zoo_sample.cfg zoo.cfg
# vi zoo.cfg
在zoo.cfg中僅需要修改dataDir的配置
dataDir=/work/jstorm/zookeeper-3.4.12/data
- zookeeper的啓動和停止
# $ZOOKEEPER_HOME/bin/zkServer.sh start
# $ZOOKEEPER_HOME/bin/zkServer.sh stop
安裝jstorm
- 下載jstorm並解壓 當前版本2.1.0(jstorm-2.1.0.tar.bz2)(因爲後面用到mvn編寫jar包,mvn只提供三個jstorm-core的版本支持)
下載地址: http://jstorm.io/Downloads.html
下載至/work/jstorm
# wget https://github.com/alibaba/jstorm/releases/download/2.1.0/jstorm-2.1.0.tar.bz2
# tar -zxvf jstorm-2.1.0.tar.bz2
- 只在2.1.0下需要注意
mv deploy/jstorm ./jstorm-2.1.0
- 配置環境變量
export JSTORM_HOME=/Users/.../work/jstorm/jstorm-2.1.0
export PATH="$PATH:$JSTORM_HOME"
- 配置storm.yaml
# cd jstorm-2.1.0/conf
# cp storm.yaml.example storm.yaml
# vim storm.yaml
修改storm.yaml,配置nimbus
storm.zookeeper.servers:
- "192.168...."
- "192.168...."
- "192.168..."
storm.zookeeper.root: "/jstorm"
nimbus.host: "....." # 只能用ip
storm.local.dir: "%JSTORM_HOME%/data"
- 修改supervisor配置
# cd jstorm-2.1.0/conf
# cp storm.yaml.example storm.yaml
# vim storm.yaml
講下面的內容前面的#去掉
supervisor.slots.ports:
- 6800
- 6801
- 6802
- 6803
- 修改集羣的配置,在jstorm安裝目錄下conf/storm.yaml
去掉下面內容前面的#號
ui.cluseters:
- {
name: "jstorm.share",
zkRoot: "/jstorm",
zkServers:
[ "192.168......", "", ""],
zkPort: 2181,
}
- 啓動節點
# nohup jstorm nimbus &
# nohup jstorm supervisor &
啓動Nimbus:進入JStorm目錄,執行bin/jstorm nimbus
啓動Supervisor:進入JStorm目錄,執行bin/jstorm supervisor
啓動之後可以通過jps命令查看結果
可能報錯
報錯
MaxTenuringThreshold of 20 is invalid; must be between 0 and 15
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
解決方案:在conf/storm.yaml內添加
nimbus.childopts: " -Xms2g -Xmx2g -Xmn768m -XX:PermSize=128m -XX:SurvivorRatio=4 -XX:MaxTenuringThreshold=15 -XX:+UseConcMarkSweepGC -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:CMSFullGCsBeforeCompaction=5 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseCMSCompactAtFullCollection -XX:CMSMaxAbortablePrecleanTime=5000 "
worker.gc.childopts: " -XX:SurvivorRatio=4 -XX:MaxTenuringThreshold=15 -XX:+UseConcMarkSweepGC -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:CMSFullGCsBeforeCompaction=5 -XX:+HeapDumpOnOutOfMemoryError -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseCMSCompactAtFullCollection -XX:CMSMaxAbortablePrecleanTime=5000 "
安裝JStorm UI
- 下載Tomcat:https://tomcat.apache.org/download-80.cgi#8.5.35
或者
http://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.0.15/bin/apache-tomcat-8.0.53.tar.gz
當前安裝版本爲8.0.53 - 安裝8.0.53
# tar -xzf apache-tomcat-8.0.53.tar.gz
# cd apache-tomcat-8.0.53
# cd webapps
# cp $JSTORM_HOME/jstorm-ui-2.1.0.war ./
# mv ROOT ROOT.old
# ln -s jstorm-ui-2.1.0 ROOT
# cd ../bin
# ./startup.sh
- 瀏覽器查看: http://localhost:8080查看JStorm的管理頁面
提交Topology
- 使用Hello進行測試
github代碼:https://github.com/ashrithr/storm-helloworld
bin/jstorm jar hello-world-1.0-SNAPSHOT.jar storm.cookbook.HelloWorldTopology HelloWorld
生成jar包,提交Storm集羣
mvn clean install
mvn clean package
mvn clean deploy - 自己的測試樣例
bin/jstorm jar storm-1.0.jar w…papercode.SimpleTopology
bin/jstorm jar storm-1.0.jar w…papercode.MiddleTopology
bin/jstorm jar storm-1.0.jar w…papercode.ComplexTopology
參考博文:https://blog.fish2bird.com/?p=383
https://www.cnblogs.com/chen110xi/p/5655050.html
https://blog.csdn.net/szzhaom/article/details/41778763