本文由作者餘寶虹授權網易雲社群釋出。
使使用者ndp部署一個Java應用大家都非常熟悉的,但是看到某些同學用非常繁瑣的方式部署storm應用的時候,我覺得很有必要整一個幫助教程,ndp幫助文檔裡面沒有,ks論壇上也沒有找到,借這個契機對這個問題做一個簡短的使用說明。
首先看看原始的部署storm的方式:
步驟一:切換到目标git分支,在應用目錄下執行mvn clean package -Dmaven.test.skip=true 來打包;
步驟二:将打包後的jar包上傳到服務端;
步驟三:在伺服器終端執行啟動指令。
上面的步驟非常的繁瑣,需要伺服器的權限,需要vpn,如果事先沒有提單申請的話,還必須花點時間等待這個權限下來,除此之外還要使用NC,SCP,Python SimpleHTTPServer或者圖像化的ftp工具Filezilla等上傳應用到伺服器。有沒有有更好更簡潔快速的方式的呢,一步搞定呢?答案是肯定的,ndp已經為我們提供了相關的功能。
如何去做呢,搭建一鍵化的storm部署環境有下面幾個步驟,具體步驟如下(和正常應用部署相同的步驟請參考ndp的使用說明文檔):
步驟一:在子產品根目錄下面建立三個目錄,分别是online,qa,test,分别對應三套環境中的啟動,停止腳本放入對應的目錄下面;
start.sh 腳本内容如下:
#!/bin/bash
STORM_HOME=/home/nisp/apache-storm-bin
$STORM_HOME/bin/storm jar /home/nisp/storm-job/risk-detect/risk-storm-jar-with-dependencies.jar com.netease.is.storm.StormRunner risk_detect_topology test
stop.sh 腳本内容如下:
$STORM_HOME/bin/storm kill risk_detect_topology
步驟二:叢集配置中選擇應用類型,請選擇“自定義”選項,其它使用預設值即可;
步驟三:建構配置中,build.xml選項選擇“自定義送出”,并将如下的ant腳本複制粘貼進去
上面的ant腳本中指定了啟動,停止storm應用腳本的目錄位置,這個和步驟一描述的代碼結構保持一緻。
步驟四:釋出配置選擇第一模闆,并填寫腳本的執行路徑(ndp可以執行)
注意:上述指令使用ndp執行時,ndp會使用下面的範式
nohup ${START_CMD} </dev/null >>/home/nisp/risk-detect-storm/risk-detect-storm-test/risk-detect-storm-test/approot/logs/app.log 2>>/home/nisp/risk-detect-storm/risk-detect-storm-test/risk-detect-storm-test/approot/logs/app.log.err &
如果start_cmd填寫的是符合指令(包含&&或者;)的話就會提示類似“nohup: failed to run command `cd': No such file or directory”的異常,直接在伺服器終端是可以正常執行的,這是因為使用ndp後,ndp将範式改造為nohup `${START_CMD}` </dev/null >>/home/nisp/risk-detect-storm/risk-detect-storm-test/risk-detect-storm-test/approot/logs/app.log 2>>/home/nisp/risk-detect-storm/risk-detect-storm-test/risk-detect-storm-test/approot/logs/app.log.err &後才可以使用符合指令,就現在而言複雜的指令可以都寫在腳本裡面,外面使用簡單指令。
完成上面的四個步驟以後就可以直接通過ndp建構釋出storm應用了,釋出建構和普通java項目一樣,這裡就不贅述了。
還在用原始方法的同學,改造起來吧,借助ndp每次5分鐘變5s鐘不是夢,省下的時間去做些更有意義的事情吧。
免費領取驗證碼、内容安全、短信發送、直播點播體驗包及雲伺服器等套餐
更多網易技術、産品、營運經驗分享請通路網易雲社群。
相關文章:
【推薦】 SparkSQL大資料實戰:揭開Join的神秘面紗