用ndp部署storm应用

数字追雪人
• 阅读 942

本文由作者余宝虹授权网易云社区发布。

使用户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,分别对应三套环境中的启动,停止脚本放入对应的目录下面;
用ndp部署storm应用

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

步骤二:集群配置中选择应用类型,请选择“自定义”选项,其它使用默认值即可;
用ndp部署storm应用

步骤三:构建配置中,build.xml选项选择“自定义提交”,并将如下的ant脚本复制粘贴进去
用ndp部署storm应用

用ndp部署storm应用
上面的ant脚本中指定了启动,停止storm应用脚本的目录位置,这个和步骤一描述的代码结构保持一致。

步骤四:发布配置选择第一模板,并填写脚本的执行路径(ndp可以执行)
用ndp部署storm应用

注意:上述命令使用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部署storm应用

还在用原始方法的同学,改造起来吧,借助ndp每次5分钟变5s钟不是梦,省下的时间去做些更有意义的事情吧。

免费领取验证码、内容安全、短信发送、直播点播体验包及云服务器等套餐

更多网易技术、产品、运营经验分享请访问网易云社区。

文章来源: 网易云社区

点赞
收藏
评论区
推荐文章
如何计算真实的数据库成本
本文分享自天翼云开发者社区《》作者:王乾在云计算占主导地位之前,计算数据库的成本是一个非常简单的等式:软件成本硬件成本数据库成本。如果你选择了一个开源产品,软件成本可能会消失。虽然云计算已经从根本上改变了我们使用和部署软件的方式,但仍有太多人在使用这种过
Stella981 Stella981
3年前
Kubernetes的四种用户部署场景,你知吗?
Kubernetes可以作为容器编排引擎、PaaS或者作为云原生应用的核心基础架构被用户部署到生产环境。这些用例并不是相互排斥的。DevOps可以委托基于Kubernetes的PaaS层完成整个应用生命周期的管理(ALM),也可以独立部署Kubernetes管理CI/CD工具部署的应用。对于新应用程序可以使用Kubernetes管理微服务架构的云原始应用,支
Stella981 Stella981
3年前
Kubernetes API 与 Operator,不为人知的开发者战争
如果我问你,如何把一个etcd集群部署在GoogleCloud或者阿里云上,你一定会不假思索的给出答案:当然是用etcdOperator!实际上,几乎在一夜之间,KubernetesOperator这个新生事物,就成了开发和部署分布式应用的一项事实标准。时至今日,无论是etcd、TiDB、Redis,还是Kafka、RocketMQ
Easter79 Easter79
3年前
SpringBoot使用assembly进行项目打包教程1
一、基本介绍1.部署方式介绍目前来说,SpringBoot项目有如下两种常见的部署方式:一种是使用docker容器去部署。将SpringBoot的应用构建成一个dockerimage,然后通过容器去启动镜像,这种方式在需要部署大规模的应用、以及应用扩展时是非常方便的,属于目前工业级的部署方案,但是需要掌握
Stella981 Stella981
3年前
Azure 部署 Asp.NET Core Web App
在云计算大行其道的时代,当你在部署一个网站时,第一选择肯定是各式各样的云端服务。那么究竟使用什么样的云端服务才能够以最快捷的方式部署一个ASP.NETCore的网站呢?Azure的WebApp服务是个很好的选择。下面我们会通过VisualStudio创建一个Asp.netCoredemo应用,然后把这个demo应用部署到
Easter79 Easter79
3年前
Springboot基于assembly的服务化打包方案
  在使用assembly来打包springboot微服务项目前,我想说一说,目前springboot项目的几种常见的部署方式。1. 使用docker容器去部署,将springboot的应用构建成一个dockerimage,然后通过容器去启动镜像,这种方式在需要部署大规模的应用和应用扩展时是非常方便的,属于目前工业级的部署方案,但是需要掌握d
Stella981 Stella981
3年前
Serverless架构:有明云PaaS
  今天大多数公司无论是在开发应用程序的时候还是将其部署到服务器的时候,无论是选择公有云还是私有云,都需要提前估算究竟需要多少台服务器,都需要部署运行应用程序和依赖的各种各样的软件到服务器上。如果我们不想在这些与业务无关的繁琐的细节上耗费精力,是否有一种简单的架构能够满足我们的需求呢?答案是Serverless(无服务器)架构。  Serverl
Stella981 Stella981
3年前
SpringBoot使用assembly进行项目打包教程1
一、基本介绍1.部署方式介绍目前来说,SpringBoot项目有如下两种常见的部署方式:一种是使用docker容器去部署。将SpringBoot的应用构建成一个dockerimage,然后通过容器去启动镜像,这种方式在需要部署大规模的应用、以及应用扩展时是非常方便的,属于目前工业级的部署方案,但是需要掌握
Stella981 Stella981
3年前
Serverless + GitHub Actions 完美自动化部署静态网站
作为强迫症患者,一直对自动化部署非常痴迷,个人认为全自动部署最重要的就是稳定可靠。经过研究测试,最终使用GitHub和腾讯云两大平台,成功完成了全自动部署网站的实践。本文来自Serverless社区用户「Stille」投稿方案简介业务需求博主有一个简单的纯静态文档站点docs.ioiox.com(https
技术革命——云计算结合人工智能
云计算在人工智能领域的应用非常广泛,它提供了强大的计算和存储资源,为人工智能算法和模型的训练、推理和部署提供了便利和效率。云计算和人工智能的结合将是一场技术革命,云计算人工智能的未来是所有的业务都在云上提供。云计算在人工智能领域的几个重要应用:
云主机CPU和内存配比:优化资源分配的关键
随着云计算技术的快速发展,云主机已经成为了许多企业和个人用户首选的计算解决方案。在部署和配置云主机时,CPU和内存的配比是一个非常重要的考虑因素。本文将深入探讨云主机CPU和内存配比的问题,以帮助用户更好地优化资源分配,提高云主机的性能和效率。