昨天打包jar扔到hadoop执行MR任务的时候报了一个错误,HBaseConfiguration类没有找到,打开jar看了一下,确实是没有将项目所需的依赖jar包打包进来。
后面到网上找了一些插件,打包后都是有问题的, maven maven-assembly-plugin这个插件差不多是可以解决我的问题了,但是还是出现了一些小bug,详情可以到网上找找。
后来看了一本书的介绍,利用 maven-shade-plugin 这个插件可以完美解决打包依赖的问题,后面也将这个问题解决了,成功运行了MR程序。
http://maven.apache.org/plugins/maven-shade-plugin/examples/includes-excludes.html
<build>
<plugins>
<!-- shade插件打包成jar包 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.water.mapreduce02.WordCount</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>