MapReduce-自动化运行配置
养猪致富得小仙女 人气:01.打包时指定main Class信息
注意:默认直接通过maven插件打成jar包中没有指定main class信息,因此在运行mapreduce的jar包时必须在指令后明确main class信息 需要在插件进行配置
1 <build> 2 <plugins> 3 <plugin> 4 <groupId>org.apache.maven.plugins</groupId> 5 <artifactId>maven-jar-plugin</artifactId> 6 <configuration> 7 <outputDirectory>${basedir}/target</outputDirectory> 8 <archive> 9 <manifest> 10 <!-- 在打包插件中指定main class 信息 --> 11 <mainClass>com.yt.wordcount.WordCountJob</mainClass> 12 </manifest> 13 </archive> 14 </configuration> 15 </plugin> 16 </plugins> 17 </build>
执行命令:clean package
2.使用wagon插件实现自动上传至hadoop集群
1 <build> 2 <!--扩展maven的插件中加入ssh插件--> 3 <extensions> 4 <extension> 5 <groupId>org.apache.maven.wagon</groupId> 6 <artifactId>wagon-ssh</artifactId> 7 <version>2.8</version> 8 </extension> 9 </extensions> 10 <plugins> 11 <plugin> 12 <groupId>org.codehaus.mojo</groupId> 13 <artifactId>wagon-maven-plugin</artifactId> 14 <version>1.0</version> 15 <configuration> 16 <fromFile>target/test.jar 或者 ${project.build.finalName}.jar</fromFile> 17 <!--user是用户名 password是密码 --> 18 <url>scp://user:password@192.168.20.128/root</url> 19 </configuration> 20 </plugin> 21 </plugins> 22 </build>
执行命令:打包后直接执行 wagon upload-single
3.使用wagon上传jar完成后远程执行job作业
wagon配置加入commands命令
1 <plugin> 2 <groupId>org.codehaus.mojo</groupId> 3 <artifactId>wagon-maven-plugin</artifactId> 4 <version>1.0</version> 5 <configuration> 6 <fromFile>target/${project.build.finalName}.jar</fromFile> 7 <url>scp://root:1@10.15.0.5/root</url> 8 <commands> 9 <!-- 通过sh 执行shell脚本文件 --> 10 <command>nohup hadoop-2.9.2/bin/hadoop jar hadoop_wordcount-1.0-SNAPSHOT.jar > /root/mapreduce.out 2>&1 & </command> 11 </commands> 12 <displayCommandOutputs>true<https://img.qb5200.com/download-x/displayCommandOutputs> 13 </configuration> 14 </plugin>
执行命令:clean package wagon:upload-single wagon:sshexec
4.idea简化指令插件下载
1.每次执行太繁琐,在idea有一个插件可以简化
2.在执行的代码右键
3.添加指令 每个指令以空格分割 点击ok
4.到这一步基本就完成了 有了这个插件为我们省去了很多步骤
右键就可以运行了
加载全部内容