首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >storm(3)-任务提交

storm(3)-任务提交

作者头像
yiduwangkai
发布于 2019-09-17 07:48:56
发布于 2019-09-17 07:48:56
56900
代码可运行
举报
文章被收录于专栏:大数据进阶大数据进阶
运行总次数:0
代码可运行

storm job的提交分为本地模式和远程模式

下面我们先从代码入手,分析一下两者的提交

1.本地模式

2.远程模式提交

通过上面两种代码的分析发现本地模式和远程模式还是有着很大的区别

但是如果我们刨根问底会发现其实最终都是一致的

本地模式其实其实使用的是127.0.0.1,如果在storm集群上,借助storm jar则使用的是storm.yaml中的配置

下面我们讲一下通过java的Rumtime exec的方式进行storm jar的提交

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public void submitTopologyToMachine(String nimbusAddress, String fileName, List<String> mainArgs, String mainClass, String jarFile){
        StringBuffer args = new StringBuffer();
        args.append(jarFile).append(" ");
        for (String arg: mainArgs){
            args.append(arg).append(" ");
        }
        args.append("-Dstorm.options=nimbus.host=").append(nimbusAddress).append(" ");
        args.append(mainClass);
        if (fileName != null){
            args.append(" ").append(fileName);
        }
        InputStream is = null;
        try {
            Runtime rt = Runtime.getRuntime();
            String command = "/home/apps/platform/storm/bin/storm/bin/storm jar "+args.toString();
            LOG.info("submit topology command is {}", command);
            String[] commandStr = {"/bin/sh","-c",command};
            Process proc = rt.exec(commandStr);
            if (LOG.isDebugEnabled()) {
                is = proc.getErrorStream();
                BufferedReader reader = new BufferedReader(new InputStreamReader(is));
                String line;
                while ((line = reader.readLine()) != null) {
                    LOG.debug("submit topology result line {}", line);
                }
            }
            int exitVal = proc.waitFor();
            LOG.info("submit topology result is {}", exitVal==0? "success" : "failure");

        } catch (IOException e) {
            LOG.error("submit job is exception {}", e);
        } catch (InterruptedException e) {
            LOG.error("submit job is exception {}", e);
        }finally {
            try {
                if (is != null){
                    is.close();
                }
            } catch (IOException e) {

            }
        }
    }

这是利用Runtime.getRuntime().exec()来执行,但是只能在linux上执行,而且还需要提前放置一份storm的安装包

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
我们项目要java执行命令“dmidecode -s system-uuid”获取结果,然而碰到问题,当项目一直执行好久后,Runtime.getRuntime().exec()获取结果为空,但也不报错,重启项目就又可以了,所以猜测属于陷阱2,并进行记录。
刘大猫
2024/11/17
9740
Java调用CMD命令
Windows下复制: copy C:\server\data\ccgavr\1.png C:\server\data\ccgavr\2.png Windows重命名: ren 1.png 3.png ren C:\server\data\ccgavr\1.png C:\server\data\ccgavr\3.png(DOS中提示命令语法不正确,powershell则可以)
JaneYork
2023/10/11
4720
Java调用CMD命令
【转】Java中Runtime.exec的一些事 
Runtime类是一个与JVM运行时环境有关的Singleton类,有以下几个值得注意的地方:
yiduwangkai
2019/09/17
3.2K0
打工人打工魂,打工的必会java调用python的几种用法(看这篇就够了)
创建maven工程,结构如下:到官网https://www.jython.org/download.html下载Jython的jar包或者在maven的pom.xml文件中加入如下代码:
用户7656790
2020/11/03
6K0
打工人打工魂,打工的必会java调用python的几种用法(看这篇就够了)
Java【代码 07】Java执行Python代码的3类5种情况测试(Java源码+Python源码举例)
python拥有的某些库要比Java强大,也拥有一些比Java更擅长的领域,python可以搭建后端让Java调用接口,但某些时候我们用到的python代码可能并不多也许只有一个算法,此时就需要以下方法了。
yuanzhengme
2025/07/25
1040
Apache Storm入门
Apache Storm是一个开源的分布式实时计算系统,可以用于处理大规模的实时数据流。它可以在容错的、弹性的集群中进行分布式实时计算,并提供了丰富的库和工具来处理和分析数据流。本文将介绍如何入门使用Apache Storm。
大盘鸡拌面
2023/10/27
4040
手写tomcat监控工具---宕机重启 原
使用前提: 1、打成jar包,并在控制台运行:java -jar TomcatMonitorUtil.jar 2、需要配置tomcat环境变量  #TOMCAT启动路径 startup.bat=E:/wwx/apache-tomcat-9.0.7/bin/startup.bat #TOMCAT关闭路径 shutdown.bat=E:/wwx/apache-tomcat-9.0.7/bin/shutdown.bat #测试连接总次数 testTotalCount=3 #测试连接间隔时间,
wuweixiang
2018/08/14
1.1K0
Mapreduce 任务提交源码分析1
提交过程 一般我们mapreduce任务是通过如下命令进行提交的 $HADOOP_HOME/bin/hadoop jar $MR_JAR $MAIN_CLASS hadoop脚本中有如下代码 elif [ "$COMMAND" = "jar" ] ; then CLASS=org.apache.hadoop.util.RunJar //... 略 exec "$JAVA" $JAVA_HEAP_MAX $HADOOP_OPTS $CLASS "$@" 可以看到hadoop命令提
囚兔
2018/02/08
1.1K0
聊聊storm supervisor的启动
storm-core-1.2.2-sources.jar!/org/apache/storm/daemon/supervisor/Supervisor.java
code4it
2018/10/18
9370
聊聊storm nimbus的LeaderElector
org/apache/storm/daemon/nimbus/Nimbus.java
code4it
2018/10/18
5740
利用UiAutomator写一个首页刷新的稳定性测试脚本
本人在做Android APP稳定性测试的过程中,需要测试在不断刷新首页内容的场景下的稳定运行和性能数据的收集。最终根据UiAutomator+多线程解决了这个问题。思路如下:先用UiAutomator编写好运行脚本,然后在使用快速调试的时候把调试命令输出出来,然后在测试脚本中运行这个调试命令即可,当然还需要多线程来辅助记录log和性能数据。
FunTester
2019/09/04
7240
Java魔法堂:找外援的利器——Runtime.exec详解
一、前言                                  Java虽然五脏俱全但总有软肋,譬如获取CPU等硬件信息,当然我们可以通过JNI调用C/C++来获取,但对于对C/C++和Windows API不熟的码农是一系列复杂的学习和踩坑过程。那能不能通过简单一些、学习成本低一些的方式呢?答案是肯定的,在功能实现放在首位的情况下,借他山之石是最简洁有力的做法。而 Runtime.exec方法 就为我们打开这么的一条路了。 二、认识 java.lang.Runtime.exec方法   作用
^_^肥仔John
2018/01/18
1.7K0
Java魔法堂:找外援的利器——Runtime.exec详解
代码审计 | 命令注入和代码注入
在开发过程中,开发人员可能需要对系统文件进行移动、删除或者执行一些系统命令,这时如果执行的命令用户可控,就会导致命令执行漏洞。
TeamsSix
2022/09/20
1.5K0
代码审计 | 命令注入和代码注入
Java实现数据库备份还原操作工具类
在开发系统过程中,经常存在数据库备份还原操作这样的需求,为的是防止数据丢失等问题,这里挨踢书写了一套备份、还原、删除的工具类,欢迎参考。
挨踢小子部落阁
2019/10/22
1.1K0
Java实现数据库备份还原操作工具类
java mencoder_mencoder java linux[通俗易懂]
在执行转化的时候只能转化1分钟的影片超过1分钟影片的都不能转化。可是直接输入命令行又能全部转化。高分求解try{Runtimert=Runtime.getRuntime();Processproc=rt.exec(“mencoder”+ol…
全栈程序员站长
2022/11/17
3290
Process类详解
ProcessBuilder是一个final类,Process是一个抽象类。ProcessBuilder.start() 和 Runtime.exec() 方法都被用来创建一个操作系统进程(执行命令行操作),并返回 Process 子类的一个实例,该实例可用来控制进程状态并获得相关信息。
matt
2022/10/25
1.8K0
异构数据源同步之数据同步 → datax 改造,有点意思
DataX 的业务代码是 java 实现的,然后你们再往上看看 System Requirements
青石路
2024/05/21
2340
异构数据源同步之数据同步 → datax 改造,有点意思
java 执行shell命令及日志收集避坑指南
有时候我们需要调用系统命令执行一些东西,可能是为了方便,也可能是没有办法必须要调用。涉及执行系统命令的东西,则就不能做跨平台了,这和java语言的初衷是相背的。
烂猪皮
2021/01/14
2.8K0
android UiAutomator自定义快速调试类
本人在使用UiAutomator的过程中,一直用快速调试类来做测试,发现其中很多地方都需要根据不同的需求做修改,今天特意花了点时间总体修改一遍,更加灵活了,又写了很多中文注释。分享出来,供大家参考。
FunTester
2019/09/05
5300
Flink使用代码提交任务
前言 本文Flink使用版本1.12.7 代码提交任务 准备文件夹和文件 hadoop fs -mkdir -p /jar/userTask hadoop fs -mkdir -p /jar/flink12/libdist hadoop fs -mkdir -p /jar/flink12/lib 拷贝需要的文件 hadoop fs -put $FLINK_HOME/examples/batch/WordCount.jar /jar/userTask/WordCount.jar hadoop fs -put
码客说
2023/01/08
1.8K0
相关推荐
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验