Jstorm叢集搭建過程/Jstorm叢集一鍵安裝部署
Jstorm 官方搭建使用過程如連線https://github.com/alibaba/jstorm/wiki/%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85 ,我整理了三個指令碼:安裝
,
Jstorm 叢集安裝 jstorm_web_ui 監控頁面
,啟動zookeeper、Jstorm叢集進行測試
。
一、整體環境說明
三個指令碼是測試環境搭建使用的,三臺機器:192.168.9.92
、192.168.9.93
、192.168.9.94
如果在其他機器上面使用,必須修改指令碼中相應有ip的地方 ,指令碼在文章最後提供,在 zip
資料夾裡面有完整的一份,使用的時候直接使用zip資料夾即可。
二、搭建過程
將 zip
包解壓到測試環境 /home/work
目錄下,解壓後,執行目錄中的三個指令碼,順序執行,即可安裝完畢。
2.1 搭建指令碼如下
2.1.1 Jstorm 叢集安裝過程 :
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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
#!/bin/bash # author: xirong # date : 2015-02-06 #### # 此指令碼為在測試環境192.168.9.92~94 三臺機器上面搭建 jstorm 叢集的指令碼,免去一步步的安裝的過程,如果換其他環境,把文中的ip修改即可 # 詳細步驟請參考 https://github.com/alibaba/jstorm/wiki/%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85 # # 安裝目錄 # jstorm : /opt/jstorm-0.9.6.2, zookeeper : /opt/zookeeper-3.4.6 , java : /opt/jdk1.7.0_75 # # 注意:執行此shell指令碼時候,最好使用 source jstorm_install.sh 或者 . jstorm_install.sh 強制在當前shell程式中執行,否則當前shell指令碼獲取不到>修改的這些環境變數值 # 遇到sudo的命令時需要輸入密碼 # 指令碼執行前提: # 存在使用者work,即存在/home/work/目錄 ; # 全新機器無Java # 機器已經存在 Python 2.6,一般centos自帶 # # 執行完指令碼後需要手動操作的步驟: # 1. zookeeper 叢集需要每臺機器標記自己身份,vim $dataDir/myid 將機器的標識填入,比如第一天機器即為1,二臺為2,以此類推 #### # 在64系統裡執行32位程式如果出現/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory # 解決錯誤Failed to set locale, defaulting to C echo "export LC_ALL=en_US.UTF-8" >> /etc/profile source /etc/profile yum install glibc.i686 echo `finish pre install glibc.i686` echo `start unzip all files` #tar -zxf jstorm.tar.gz unzip jstorm.zip echo `finish unzip all files and start java setup` cd jstorm_tar/ tar -zxf jdk-7u75-linux-i586.tar_0.gz -C /opt/ echo `finish unzpip jdk-7u75-linux-i586.tar_0.gz && start java envirenment settting ` # 配置java環境 echo `## java configuration ` >> /etc/profile echo `JAVA_HOME=/opt/jdk1.7.0_75` >> /etc/profile echo `export PATH=$JAVA_HOME/bin:$PATH` >> /etc/profile echo `export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar` >> /etc/profile echo `export JAVA_HOME` >> /etc/profile echo `finish java envirement setting etc/profile` # 使配置生效 . /etc/profile which java ## 搭建zookeeper叢集 echo `start setup zookeeper ……………………` tar -zxf zookeeper-3.4.6.tar.gz -C /opt/ echo `# zookeeper configuration ` >> /etc/profile echo `export ZOOKEEPER_HOME=/opt/zookeeper-3.4.6` >> /etc/profile echo `export PATH=$ZOOKEEPER_HOME/bin:$PATH` >> /etc/profile echo `export CLASSPATH=$ZOOKEEPER_HOME/lib` >> /etc/profile mkdir -p /home/work/jstorm/zookeeper_data #cd /opt/zookeeper-3.4.6/conf/ cp -f /opt/zookeeper-3.4.6/conf/zoo_sample.cfg /opt/zookeeper-3.4.6/conf/zoo_sample.cfg.bak mv /opt/zookeeper-3.4.6/conf/zoo_sample.cfg /opt/zookeeper-3.4.6/conf/zoo.cfg # 修改zookeeper資料檔案的位置 sed -i.bak `s/dataDir=/tmp/zookeeper/dataDir=/home/work/jstorm/zookeeper_data//g` /opt/zookeeper-3.4.6/conf/zoo.cfg # 叢集配置的時候需要加入三臺機器的配置 ,這個就是你在搭建你自己的三臺機器的ip echo `# zookeeper cluster mathines` >> /opt/zookeeper-3.4.6/conf/zoo.cfg echo `server.1=192.168.9.92:2888:3888` >> /opt/zookeeper-3.4.6/conf/zoo.cfg echo `server.2=192.168.9.93:2888:3888` >> /opt/zookeeper-3.4.6/conf/zoo.cfg echo `server.3=192.168.9.94:2888:3888` >> /opt/zookeeper-3.4.6/conf/zoo.cfg # dataDir目錄下新增標識身份 myid(這個需要手動做) # vim $dataDir/myid 將機器的標識填入,比如第一天機器即為1,二臺為2 # 使配置生效 . /etc/profile echo `finish setup zookeeper && start setup zeromq……` # 安裝zeromq # 解決錯誤 cannot link with -luuid, install uuid-dev yum install uuid-devel && yum install libuuid-devel tar -zxf zeromq-2.1.7.tar.gz cd zeromq-2.1.7 ./configure && make && sudo make install && sudo ldconfig cd .. echo `finish setup zeromq && start setup jzmq ……` # 安裝jzmq tar -zxf jzmq.tar && cd jzmq && ./autogen.sh && ./configure && make && sudo make install cd .. # 安裝 jstrom echo `finish setup jzmq && start setup jstorm ……` mkdir /home/work/jstorm/jstorm_data unzip jstorm-0.9.6.2.zip -d /opt/ echo `export JSTORM_HOME=/opt/jstorm-0.9.6.2` >> ~/.bashrc echo `export PATH=$PATH:$JSTORM_HOME/bin` >> ~/.bashrc echo `after configure bashrc for jstorm` source ~/.bashrc # 配置$JSTORM_HOME/conf/storm.yaml echo `start configuration storm.yaml ……` sed -i `/localhost"$/`d /opt/jstorm-0.9.6.2/conf/storm.yaml sed -i /`storm.zookeeper.servers:/a - "192.168.9.94"` /opt/jstorm-0.9.6.2/conf/storm.yaml sed -i /`storm.zookeeper.servers:/a - "192.168.9.93"` /opt/jstorm-0.9.6.2/conf/storm.yaml sed -i /`storm.zookeeper.servers:/a - "192.168.9.92"` /opt/jstorm-0.9.6.2/conf/storm.yaml sed -i `s/%JSTORM_HOME%/data//home/work/jstorm/jstorm_data/g` /opt/jstorm-0.9.6.2/conf/storm.yaml sed -i /`storm.zookeeper.root/a nimbus.host: "192.168.9.92"` /opt/jstorm-0.9.6.2/conf/storm.yaml # 下面這兩句只需要在安裝 jstorm_ui 和提交jar節點的機器上面執行就可以了 #mkdir ~/.jstorm #cp -f $JSTORM_HOME/conf/storm.yaml ~/.jstorm echo `congratilations ! you have successfully install jstorm on your machine ! Enjoy it !` |
2.1.2 Jstorm_web_ui 監控搭建 :
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 26 27 28 |
#!/bin/bash # author: xirong # date : 2015-05-11 ######### # 安裝 jstorm 監控 UI 頁面 (只需要在一臺機器上面安裝即可) # 此指令碼執行前需要先執行指令碼 1.jstorm_cluster_install.sh ######### echo `start install apache-tomcat-7.0.61 ` mkdir ~/.jstorm cp -f $JSTORM_HOME/conf/storm.yaml ~/.jstorm tar -zxf apache-tomcat-7.0.61.tar.gz -C /opt/ cd /opt/apache-tomcat-7.0.61/webapps cp $JSTORM_HOME/jstorm-ui-0.9.6.2.war ./ mv ROOT ROOT.old ln -s jstorm-ui-0.9.6.2 ROOT cd ../bin ./startup.sh echo `congratulaions ! you have install jstorm_ui! enjoy it !` # 如果本機埠8080沒有開放,那麼需要開放埠號8080以供外面可以訪問 #/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT #/etc/rc.d/init.d/iptables save #/etc/init.d/iptables restart |
2.1.3 jstorm 叢集啟動 測試
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 26 27 28 29 30 31 |
#!/bin/bash # author: xirong # date : 2015-05-11 ##### # 啟動 jstorm指令碼 # 1. 先啟動必須元件 zookeeper,啟動前必須確定每臺機器自己的myid檔案 #### # 先啟動必須元件 zookeeper,啟動前必須確定每臺機器自己的myid檔案,不明白,檢視安裝地方 cd /opt/zookeeper-3.4.6 sh bin/zkServer.sh start echo `zookeeper has started ! please see status :` # leader or follower sh bin/zkServer.sh status # 詳細命令 http://www.wangyuxiong.com/archives/51725 # 啟動 jstorm 服務 自動指令碼 $JSTORM_HOME/logs/supervisor.log檢查有無錯誤 sh /opt/jstorm-0.9.6.2/bin/start.sh # 只需要在nimbus機器上面執行,如果已經ok的話,就不需要了 # nohup jstorm nimbus & # $JSTORM_HOME/logs/nimbus.log檢查有無錯誤 # 停止 #sh /opt/jstorm-0.9.6.2/bin/stop.sh |
2.2 安裝注意
- java環境配置建議1.7以上
- 叢集三臺機器需要關閉防火牆,否則錯誤 “
java.net.NoRouteToHostException: 沒有到主機的路由
”
1 2 3 4 |
[root@master shirdrn]# service iptables stop Flushing firewall rules: [ OK ] Setting chains to policy ACCEPT: filter [ OK ] Unloading iptables modules: [ OK ] |
三、jstorm 常用命令
- 啟動 nimbus “nohup jstorm nimbus & “ 檢視$JSTORM_HOME/logs/nimbus.log 檢查錯誤日誌
- 啟動 supervisor “nohup jstorm supervisor &” 檢視$JSTORM_HOME/logs/supervisor.log 檢查有無錯誤
- 停止 “sh $JSTORM_HOME/bin/stop.sh”
完整命令列表同storm一樣,包括jar、kill、activate、deactivate、rebalance、repl、classpath、localconfvalue、remoteconfvalue、nimbus、supervisor、ui、drpc等,詳細見:https://github.com/techdocscn/storm/blob/master/source/documentation/Command-line-client.md
四、zookeeper 常用命令
zk 叢集搭建過程:
常用命令:
- 啟動ZK服務: sh bin/zkServer.sh start
- 檢視ZK服務狀態: sh bin/zkServer.sh status
- 停止ZK服務: sh bin/zkServer.sh stop
- 重啟ZK服務: sh bin/zkServer.sh restart
或者連線到伺服器 bin/zkCli.sh -server 127.0.0.1:2181 輸入help 檢視操作幫助
其它使用命令詳細參考: http://www.wangyuxiong.com/archives/51725
學習資料:
Jstorm中使用zookeeper主要用於Storm叢集各節點的分散式協調工作,具體功能如下:
(1)儲存客戶端提供的topology任務資訊,nimbus負責將任務分配資訊寫入Zookeeper,supervisor從Zookeeper上讀取任務分配資訊;
(2)儲存supervisor和worker的心跳(包括它們的狀態),使得nimbus可以監控整個叢集的狀態, 從而重啟一些掛掉的worker;
(3)儲存整個叢集的所有狀態資訊和配置資訊。
具體目錄結構參考:storm在ZooKeeper中的目錄結構
五、jstorm.zip 包和指令碼下載
在 zip
資料夾裡面有完整的上述三個驕傲本,使用的時候直接下載zip資料夾即可,下載地址 : 百度網盤 ,密碼:btcq
六、storm 學習資料
大圓那些事 http://www.cnblogs.com/panfeng412/tag/Storm/
徐明明 https://xumingming.sinaapp.com/category/storm/
常用的一些基本命令 http://my.oschina.net/infiniteSpace/blog/339193
jstorm通用介紹 http://luoshi0801.iteye.com/blog/2168848
簡單之美個人部落格 http://shiyanjun.cn/archives/1019.html
jstorm深入分析:http://hexiaoqiao.sinaapp.com/2014/06/jstorm%E4%BB%8B%E7%BB%8D/
介紹nimbus :http://hexiaoqiao.sinaapp.com/2014/06/jstorm%E4%B9%8Bnimbus%E7%AE%80%E4%BB%8B/
介紹 superviser :http://hexiaoqiao.sinaapp.com/2014/07/jstorm%E4%B9%8Bsupervisor%E7%AE%80%E4%BB%8B/
storm 入門教程(量子恆道官方部落格) http://blog.linezing.com/?cat=92
如果有什麼問題,可以在右側我的各種社交中找到我,或者在文章下面評論,我會及時答覆各位
相關文章
- 搭建kubernetes 叢集的安裝過程和方法
- Cloudera Manager安裝 & 搭建CDH叢集Cloud
- 搭建zookeeper叢集(偽叢集)
- Solaris本地叢集VCS安裝過程(試用License)
- zookeeper叢集及kafka叢集搭建Kafka
- Cassandra安裝及分散式叢集搭建分散式
- 安裝 REDIS 叢集Redis
- 安裝Kafka叢集Kafka
- 叢集搭建
- Redis系列:搭建Redis叢集(叢集模式)Redis模式
- Redis-cluster叢集搭建部署Redis
- 部署分片叢集
- Hadoop叢集搭建(一)Hadoop
- 完整安裝always on叢集
- 安裝Consul叢集
- 快速安裝 kafka 叢集Kafka
- FastDFS 叢集 安裝 配置AST
- linux下搭建ZooKeeper叢集(偽叢集)Linux
- redis叢集搭建Redis
- nacos 叢集搭建
- kafka叢集搭建Kafka
- Ambari叢集搭建
- 搭建ELK叢集
- RabbitMQ叢集搭建MQ
- HBASE叢集搭建
- zookeeper 叢集搭建
- mysql叢集搭建MySql
- Zookeeper叢集搭建
- 搭建 Redis 叢集Redis
- 搭建 zookeeper 叢集
- Elasticsearch 叢集搭建Elasticsearch
- mysql 叢集搭建MySql
- Storm叢集搭建ORM
- 在 Rainbond 中一鍵安裝高可用 Nacos 叢集AI
- Ganglia監控Hadoop叢集的安裝部署Hadoop
- Linux下MySQL/MariaDB Galera叢集搭建過程LinuxMySql
- 從0到1搭建spark叢集---企業叢集搭建Spark
- 基於Dokcer搭建Redis叢集(主從叢集)Redis