1.打包时指定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>&amp;1 &amp; </command>
11     </commands>
12     <displayCommandOutputs>true</displayCommandOutputs>
13   </configuration>
14 </plugin>

  执行命令:clean  package  wagon:upload-single   wagon:sshexec

       

 

 

4.idea简化指令插件下载

  1.每次执行太繁琐,在idea有一个插件可以简化

        

2.在执行的代码右键

3.添加指令

 

 

       

 

 

   4.每个指令以空格分割   点击ok

       

 

 

   5.大功告成  有这个插件以后只需要执行一条命令即可

版权声明:本文为xiaoh1原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xiaoh1/p/12151758.html