1. 程式人生 > >部署storm和配置檔案詳解

部署storm和配置檔案詳解

#########安裝storm########
storm_install.sh
sudo ansible -i ansible_hosts elk -m copy -a "src=/letv/apache-storm-1.1.0.tar.gz dest=/letv/apache-storm-1.1.0.tar.gz "
ansible -i ansible_hosts elk -m script -a '/root/script/storm_install.sh'
ansible -i ansible_hosts elk -m shell -a  'source /etc/profile && storm supervisor &'
ansible -i ansible_hosts elk -m shell -a 'ss -lnpt' ansible -i ansible_hosts elk -m shell -a 'ps -ef | grep storm' #!/bin/bash cd /letv/ tar zvxf apache-storm-1.1.0.tar.gz ln -s /letv/apache-storm-1.1.0 /usr/local/storm #改配置檔案 cat >> /letv/apache-storm-1.1.0/conf/storm.yaml << EOF #Storm叢集對應的ZooKeeper叢集的主機列表
storm.zookeeper.servers: - "bops-10-183-93-129" - "bops-10-183-93-131" - "bops-10-183-93-132" #Storm叢集對應的ZooKeeper叢集的服務埠,ZooKeeper預設埠為21818 storm.zookeeper.port: 21818 #Storm使用的本地檔案系統目錄(必須存在並且Storm程序可讀寫) storm.local.dir: /data/hadoop/data5/storm-workdir #Storm執行模式,叢集模式需設定為distributed(分散式的) storm.cluster.mode: distributed #storm.local.mode.zmq true
#Storm的元資料在ZooKeeper中儲存的根目錄 storm.zookeeper.root: /storm storm.zookeeper.session.timeout: 60000 #整個Storm叢集的Nimbus節點 nimbus.host: bops-10-183-93-129 storm.log.dir: /data/hadoop/data4/storm-logs #Storm的Slot,最好設定成OS核數的整數倍;同時由於Storm是基於記憶體的實時計算,Slot數不要大於每臺物理機可執行Slot個數:(實體記憶體-虛擬記憶體)/單個Java程序最大可佔用記憶體數 supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703 - 6704 - 6705 - 6706 - 6707 - 6708 - 6709 - 6710 - 6711 - 6712 - 6713 - 6714 - 6715 - 6716 - 6717 - 6718 - 6719 EOF mkdir -p /data/hadoop/data5/storm-workdir && mkdir -p /data/hadoop/data4/storm-logs #建立storm工作目錄 storm-workdir storm-logs storm.local.dir: /data/hadoop/data5/storm-workdir storm.log.dir: /data/hadoop/data4/storm-logs mkdir /data/hadoop/data5/storm-workdir && mkdir /data/hadoop/data4/storm-logs #啟動nimbus storm nimbus & ###########################start-nimbus.sh #! /bin/bash source /etc/profile cd `dirname $0` pwd DAY=`date +%F` if [ -f "/data/hadoop/data4/storm-logs/nimbus.log" ]; then mv /data/hadoop/data4/storm-logs/nimbus.log /data/hadoop/data4/storm-logs/nimbus.log_${DAY} fi COUNT=`jps | grep nimbus | wc -l` if [ $COUNT -eq 0 ]; then nohup /usr/local/storm/bin/storm nimbus 1>/data/hadoop/data4/storm-logs/nimbus.log 2>&1 & sleep 5 fi ################ #啟動nimbus storm storm supervisor & ##############start-storm.sh #! /bin/bash source /etc/profile cd `dirname $0` pwd DAY=`date +%F` OLD=`date -d "2 days ago" +%F` TIME=`date +"%F %H:%M:%S"` LOG="log_monitor_storm_supervisor_$DAY" rm -f log_monitor_storm_supervisor_$OLD.log echo starting supervisors,time: `date` 1>> $LOG.log 2>&1 for stormserver in $(cat ../conf/slaves) do echo stormserver: $stormserver echo sh monitor-java-process.sh ${stormserver} 15801342789 supervisor "sh /usr/local/storm/bin/start-supervisor.sh" sh monitor-java-process.sh ${stormserver} 15801342789 supervisor "sh /usr/local/storm/bin/start-supervisor.sh" done 1>> $LOG.log 2>&1 NIMBUS_HOST=`tail -n 1 ../conf/nimbus` sh monitor-java-process.sh ${NIMBUS_HOST} 15801342789 nimbus "sh /usr/local/storm/bin/start-nimbus.sh" 1>> $LOG.log 2>&1 echo ending time: `date` 1>> $LOG.log 2>&1 ########### #啟動ui storm ui & ####################ui############ #!/bin/bash source /etc/profile cd `dirname $0` pwd DAY=`date +%F` if [ -f "/data/hadoop/data4/storm-logs/storm-ui.log" ]; then mv /data/hadoop/data4/storm-logs/storm-ui.log /data/hadoop/data4/storm-logs/storm-ui.log_${DAY} fi COUNT=`jps | grep core | wc -l` if [ $COUNT -eq 0 ]; then nohup /usr/local/storm/bin/storm ui > /data/hadoop/data4/storm-logs/storm-ui.log 2>&1 & sleep 5 fi #################start-supervisor.sh #!/bin/bash source /etc/profile cd `dirname $0` pwd DAY=`date +%F` if [ -f "/data/hadoop/data4/storm-logs/supervisor.log" ]; then mv /data/hadoop/data4/storm-logs/supervisor.log /data/hadoop/data4/storm-logs/supervisor.log_${DAY} fi COUNT=`jps | grep supervisor | wc -l` if [ $COUNT -eq 0 ]; then echo starting supervisor echo `date "+%Y%m%d %H:%M:%S"` COUNT=0, starting supervisor >> /data/hadoop/data4/storm-logs/supervisor-restart.log nohup /usr/local/storm/bin/storm supervisor 1> /data/hadoop/data4/storm-logs/supervisor.log 2>&1 & sleep 5 #bin/storm all-supervisor >/dev/null 2>&1 & fi ######### 1. Nimbus:在 master 機器上,在監控下執行 bin/storm nimbus 命令。 2. Supervisor:在每個工作節點上,在監控下執行 bin/storm supervisor 命令。Supervisor 的後臺程序主要負責啟動/停止該機器上的 worker 程序。 3. UI:在 master 機器上,在監控下執行 bin/storm ui 命令啟動 Storm UI(Storm UI 是一個可以在瀏覽器中方便地監控叢集與拓撲執行狀況的站點)後臺程序。可以通過 http://{nimbus.host}:8080 來訪問 UI 站點。 最後加環境變數 #!/bin/bash cat >> /etc/profile << EOF export JAVA_HOME=/usr/local/java export SCALA_HOME=/usr/local/scala export KAFKA_HOME=/usr/local/kafka export PATH=$JAVA_HOME/bin:$SCALA_HOME/bin:$KAFKA_HOME/bin:$PATH export STORM_HOME=/usr/local/storm export PATH=${PATH}:${STORM_HOME}/bin export ZK_CONNECT=10.183.93.129:21818,10.183.93.131:21818,10.183.93.132:21818/kafka EOF