用ndp部署storm应用
本文由作者余宝虹授权网易云社区发布。
使用户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 脚本内容如下:
#!/bin/bash
STORM_HOME=/home/nisp/apache-storm-bin
$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的神秘面纱
用ndp部署storm应用的更多相关文章
- 测试环境docker化(一)—基于ndp部署模式的docker基础镜像制作
本文来自网易云社区 作者:孙婷婷 背景 我所在测试项目组目前的测试环境只有一套,在项目版本迭代过程中,开发或产品偶尔会在测试环境进行数据校验,QA人数在不断增加,各个人员在负责不同模块工作时也会产生脏 ...
- 使用Docker快速部署Storm环境
Storm的部署虽然不是特别麻烦,但是在生产环境中,为了提高部署效率,方便管理维护,使用Docker来统一管理部署是一个不错的选择.下面是我开源的一个新的项目,一个配置好了storm与mono环境的D ...
- Storm入门教程 第三章Storm集群安装部署步骤、storm开发环境
一. Storm集群组件 Storm集群中包含两类节点:主控节点(Master Node)和工作节点(Work Node).其分别对应的角色如下: 主控节点(Master Node)上运行一个被称为N ...
- flume+kafka+storm单机部署
flume-1.6.0 kafka0.9.0.0 storm0.9.6 一.部署flume 1.解压 tar -xzvf apache-flume-1.6.0-bin.tar.gz -C ../app ...
- Storm介绍及安装部署
本节内容: Apache Storm是什么 Apache Storm核心概念 Storm原理架构 Storm集群安装部署 启动storm ui.Nimbus和Supervisor 一.Apache S ...
- Storm 系列(三)Storm 集群部署和配置
Storm 系列(二)Storm 集群部署和配置 本章中主要介绍了 Storm 的部署过程以及相关的配置信息.通过本章内容,帮助读者从零开始搭建一个 Storm 集群. 一.Storm 的依赖组件 1 ...
- Apache 流框架 Flink,Spark Streaming,Storm对比分析(2)
此文已由作者岳猛授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 2.Spark Streaming架构及特性分析 2.1 基本架构 基于是spark core的spark s ...
- 转载文档:Storm实战常见问题及解决方案
该文档为实实在在的原创文档,转载请注明: http://blog.sina.com.cn/s/blog_8c243ea30101k0k1.html 类型 详细 备注 该文档是群里几个朋友在storm实 ...
- 《Storm入门》中文版
本文翻译自<Getting Started With Storm>译者:吴京润 编辑:郭蕾 方腾飞 本书的译文仅限于学习和研究之用,没有原作者和译者的授权不能用于商业用途. 译者序 ...
随机推荐
- 乱序字符串anagrams
[抄题]: 给出一个字符串数组S,找到其中所有的乱序字符串(Anagram).如果一个字符串是乱序字符串,那么他存在一个字母集合相同,但顺序不同的字符串也在S中. 对于字符串数组 ["lin ...
- OC - GCD 队列组 - 下载图片画图
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ [self downloadIma ...
- Thread.currentThread().getName() ,对象实例.getName() 和 this.getName()区别
原文链接:http://www.cnblogs.com/signheart/p/922dcf75dd5fe6b418d4475af89c4664.html 使用Thread.currentThread ...
- 关于前一篇innodb自增列自己的一点补充
上篇文章是我转载的,忘记注明了出处,在这里深感歉意.但是上篇文章中关于自增列预留ID的计算我当时怎么弄明白,后来自己想了想终于想通了,在这里详细解释一下. 我们以一次性插入10行为例,表格如下: 插 ...
- PAT 1079 延迟的回文数(代码+思路)
1079 延迟的回文数(20 分) 给定一个 k+1 位的正整数 N,写成 ak⋯a1a0 的形式,其中对所有 i 有 0≤ai<10 且 ak>0.N 被称 ...
- 750A New Year and Hurry
A. New Year and Hurry time limit per test 1 second memory limit per test 256 megabytes input standar ...
- 2015湖南湘潭 D 二分
2015湖南湘潭第七届大学生程序设计比赛 D题 Fraction Accepted : 133 Submit : 892 Time Limit : 1000 MS Memory Limit : ...
- The server is busy, please refresh
- Debian use sudo
刚安装好的Debian默认还没有sudo功能.1.安装sudo# apt-get install sudo2.编辑 /etc/sudoers ,添加如下行# visudoroot ALL=(ALL:A ...
- 支持向量机(SVM)算法
支持向量机(support vector machine)是一种分类算法,通过寻求结构化风险最小来提高学习机泛化能力,实现经验风险和置信范围的最小化,从而达到在统计样本量较少的情况下,亦能获得良好统计 ...