MapReduce程序自动化执行

编程入门 行业动态 更新时间:2024-10-11 15:23:43

MapReduce<a href=https://www.elefans.com/category/jswz/34/1771429.html style=程序自动化执行"/>

MapReduce程序自动化执行

MapReduce程序自动化执行

前言:

上篇博文开发了第一个MapReduce程序,但是,我们可以发现,MapReduce程序的执行,非常麻烦,首先需要Package,然后再通过Xftp工具将jar包上传到unix服务器,再在服务器上通过Shell命名执行如下命令

yarn jar hadoop-wordcount-1.0-SNAPSHOT.jar com.sun.wordcount.WordCountJob

才能完成一次MapReduce程序的执行!可以想象这个执行是多么的麻烦。那么本次博文就是介绍如何自动化的执行的Job工作。

一、配置Main-Class(不必再指定job类的包名)

每次Shell命令执行MapReduce程序的时候,不但要指定jar包的位置,而且要指定Job类的包名

yarn jar hadoop-wordcount-1.0-SNAPSHOT.jar com.sun.wordcount.WordCountJob

那么能否不用指定包名呢?答案是可以的,只需要在pom中进行如下配置即可

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><outputDirectory>${basedir}/target</outputDirectory><archive><manifest><mainClass>com.sun.wordcount.WordCountJob</mainClass></manifest></archive></configuration></plugin></plugins>
</build>

然后,在Shell中只需要执行如下命令就可以执行Job工作了

yarn jar hadoop-wordcount-1.0-SNAPSHOT.jar 

二、自动上传Jar包

在上一步的基础上,只需要在pom中进行如下配置即可

<build><!--扩展maven的插件(wagon ssh插件)--><extensions><extension><groupId>org.apache.maven.wagon</groupId><artifactId>wagon-ssh</artifactId><version>2.8</version></extension></extensions><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><outputDirectory>${basedir}/target</outputDirectory><archive><manifest><mainClass>com.sun.wordcount.WordCountJob</mainClass></manifest></archive></configuration></plugin><!--使用wagon ssh插件--><plugin><groupId>org.codehaus.mojo</groupId><artifactId>wagon-maven-plugin</artifactId><version>1.0</version><!--将文件上传到指定的服务器--><configuration><fromFile>target/${project.build.finalName}.jar</fromFile><!--url格式:scp://用户名:密码:服务器IP地址:文件上传目录位置--><url>scp://root:123@192.168.23.134:/root/hadoop/wordcount/code</url></configuration></plugin></plugins></build>

然后再执行Job工作,只需要先点击Package,再点击wagon:upload-single即可完成jar的自动上传

再在Shell中执行如下命令即可完成一次Job作业

yarn jar hadoop-wordcount-1.0-SNAPSHOT.jar 

三、自动执行Shell命令

上面的两步操作完成了Jar的自动上传,但我们还是需要去Shell命令窗口执行命令,再加上下面的配置就可以完成Shell命令的自动执行

<build><!--扩展maven的插件(wagon ssh插件)--><extensions><extension><groupId>org.apache.maven.wagon</groupId><artifactId>wagon-ssh</artifactId><version>2.8</version></extension></extensions><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><outputDirectory>${basedir}/target</outputDirectory><archive><manifest><mainClass>com.sun.wordcount.WordCountJob</mainClass></manifest></archive></configuration></plugin><!--使用wagon ssh插件--><plugin><groupId>org.codehaus.mojo</groupId><artifactId>wagon-maven-plugin</artifactId><version>1.0</version><!--将文件上传到指定的服务器--><configuration><fromFile>target/${project.build.finalName}.jar</fromFile><!--url格式:scp://用户名:密码:服务器IP地址:文件上传目录位置--><url>scp://root:123@192.168.23.134:/root/hadoop/wordcount/code</url><!--自动执行对应脚本--><commands><!--通过ssh执行shell脚本文件(执行yarn命令,且在/root/hadoop/wordcount/code目录下生成执行日志)--><command>nohup /root/hadoop/hadoop-2.9.2/bin/yarn jar /root/hadoop/wordcount/code/${project.build.finalName}.jar > /root/hadoop/wordcount/code/mapreduce.out 2>&amp;1 &amp;</command></commands></configuration></plugin></plugins></build>

上面配置完成后,我们如果执行Job作业,只需要以下三步即可

四、一键执行MapReduce程序

上面步骤配置完成,我们还需要每次都分别点击三个按钮才能执行一次Job作业,那么能一键Run呢?答案是可以的,我们安装Maven helper插件,这个插件可以一次性执行多个操作

右键Job作业代码,

添加需要执行的操作(以空格分开),这样就可以批量执行多个操作了

更多推荐

MapReduce程序自动化执行

本文发布于:2024-03-15 08:59:51,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1738533.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:程序   MapReduce

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!