MapReduce程序自动化执行
发布日期:2021-05-28 17:02:36
浏览次数:23
分类:技术文章
本文共 3763 字,大约阅读时间需要 12 分钟。
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中进行如下配置即可
org.apache.maven.plugins maven-jar-plugin ${basedir}/target com.sun.wordcount.WordCountJob
然后,在Shell中只需要执行如下命令就可以执行Job工作了
yarn jar hadoop-wordcount-1.0-SNAPSHOT.jar
二、自动上传Jar包
在上一步的基础上,只需要在pom中进行如下配置即可
org.apache.maven.wagon wagon-ssh 2.8 org.apache.maven.plugins maven-jar-plugin ${basedir}/target com.sun.wordcount.WordCountJob org.codehaus.mojo wagon-maven-plugin 1.0 target/${project.build.finalName}.jar scp://root:123@192.168.23.134:/root/hadoop/wordcount/code
然后再执行Job工作,只需要先点击Package,再点击wagon:upload-single即可完成jar的自动上传
再在Shell中执行如下命令即可完成一次Job作业yarn jar hadoop-wordcount-1.0-SNAPSHOT.jar
三、自动执行Shell命令
上面的两步操作完成了Jar的自动上传,但我们还是需要去Shell命令窗口执行命令,再加上下面的配置就可以完成Shell命令的自动执行
org.apache.maven.wagon wagon-ssh 2.8 org.apache.maven.plugins maven-jar-plugin ${basedir}/target com.sun.wordcount.WordCountJob org.codehaus.mojo wagon-maven-plugin 1.0 target/${project.build.finalName}.jar scp://root:123@192.168.23.134:/root/hadoop/wordcount/code 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>&1 &
上面配置完成后,我们如果执行Job作业,只需要以下三步即可
四、一键执行MapReduce程序
上面步骤配置完成,我们还需要每次都分别点击三个按钮才能执行一次Job作业,那么能一键Run呢?答案是可以的,我们安装Maven helper插件,这个插件可以一次性执行多个操作
右键Job作业代码, 添加需要执行的操作(以空格分开),这样就可以批量执行多个操作了转载地址:https://blog.csdn.net/qq_34720818/article/details/107005962 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年12月11日 05时18分48秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Hadoop_HDFS HA 及解决方案
2019-06-16
(转载)linux下的僵尸进程处理SIGCHLD信号
2019-06-16
classloader
2019-06-16
Mysql导出导入
2019-06-16
getRequestDispatcher()与sendRedirect()的区别
2019-06-16
软件包管理
2019-06-16
[Codevs] 1080 线段树练习
2019-06-16
Struts2之OGNL表达式
2019-06-16
移动web常见问题
2019-06-16
nodejs 学习博客教程之--Node.js开发框架Express4.x
2019-06-16
170207、粘性定位实现滚动到指定位置元素固定显示
2019-06-16
160701、理解 Promise 的工作原理
2019-06-16
160728、Spark Streaming kafka 实现数据零丢失的几种方式
2019-06-16
Spring4新特性
2019-06-16
.net
2019-06-16
【2009-1】【商品编码】
2019-06-16
排列组合 【2009】二1
2019-06-16
知识点-Spark小节
2019-06-16