用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>译者:吴京润 编辑:郭蕾 方腾飞 本书的译文仅限于学习和研究之用,没有原作者和译者的授权不能用于商业用途. 译者序 ...
随机推荐
- C#.net随机数函数
(1)Random rnd = new Random(); int rndNum = rnd.Next(); //int 取值范围内的随机数 int rndNum = rnd.Ne ...
- [leetcode]416. Partition Equal Subset Sum分割数组的和相同子集
Given a non-empty array containing only positive integers, find if the array can be partitioned into ...
- php的无刷新实现方法
方法一: 我们通过http的204状态码,页面不跳转. 1.html代码如下: <!DOCTYPE HTML> <html lang="zh-CN"> &l ...
- SVN的标准目录结构:trunk、branches、tags
原文链接:http://techlife.blog.51cto.com/212583/223704/ 我们在一些著名开源项目的版本库中,通常可以看到trunk, branches, tags等三个目录 ...
- doctotext
文档解析库 http://www.it610.com/article/1936051.htm
- org.json
org.json很经典.能解析json和序列化List.Map为json,但是不能自动填充bean.不依赖其它架包. 直接上代码: import java.util.ArrayList; import ...
- 2018.07.30 cogs2632. [HZOI 2016] 数列操作d(线段树)
传送门 线段树基本操作 区间加等差数列,维护区间和. 对于每个区间维护等差数列首项和公差,易证这两个东西都是可合并的,然后使用小学奥数的知识就可以切掉这题. 代码: #include<bits/ ...
- Win7 SP1 提示ADO的问题
需要安装 Windows6.1-KB2640696-v3-x64.msu 这个Pack
- java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java he
tomcat内存溢出的解决方法(java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError:) 最简单的解决办法: 在ecl ...
- 关于linux下/srv、/var和/tmp的职责区分
转载自:https://blog.csdn.net/u012107143/article/details/54972544?utm_source=itdadao&utm_medium=refe ...