解决 Hadoop 集群执行包含 third-part lib 的 jar包的 ClassNotFoundException 问题
来源:互联网 发布:东三环java培训 编辑:程序博客网 时间:2024/05/02 04:19
1 异常信息
WordCount 的 maven 工程包含一些第三方的 lib,打包 package 之后的 jar 包放到 Hadoop 集群执行时报如下异常Class/File NotFoundException:
使用 jd-gui 反编译生成的 jar 包,也可发现没有包含 guava:
但 maven工程的 External Libraries 里包含 guava 的依赖:
所以,问题出在 maven 打包的时候由于有的第三方包相互依赖而导致没有包含进来。
2 解决方案
在 pom.xml
文件中添加如下插件:
<build> <plugins> <!--指定主函数和各个依赖--> <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.2</version> <configuration> <archive> <manifest> <!-- 指定 main 函数的类 --> <mainClass>com.markliu.hadoop.mapreduce.WordCount</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <!-- 不是 shade --> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
maven 重新 clean、package,可发现已经添加过得包自动跳过:
上传到集群执行的结果:
Done!
0 0
- 解决 Hadoop 集群执行包含 third-part lib 的 jar包的 ClassNotFoundException 问题
- 有关hadoop执行包含外在jar包的jar包程序
- dos 下执行jar 包 解决依赖的jar 包问题
- tomcat5中的无法调用WEB-INF/lib/中j2ee.jar包的怪问题的解决
- jar包执行报ClassNotFoundException
- tomcat5的common/lib目录下jar包和WEB/lib下jar包冲突问题
- tomcat5的common/lib目录下jar包和WEB/lib下jar包冲突问题
- jar包的执行 问题汇总
- WEB-INFO/lib & build path 的jar包问题
- Java使用JSONObject的Jar包问题,json-lib 2.4
- WEB-INFO/lib & build path 的jar包问题
- WEB-INFO/lib & build path 的jar包问题
- WEB-INFO/lib & build path 的jar包问题
- WEB-INFO/lib & build path 的jar包问题
- hadoop提交jar包卡住不会往下执行的解决方案
- hadoop中mapreduce的jar包执行方式
- hadoop jar运行hbase相关jar包的classpath问题
- hadoop、hbase解决需求jar包问题
- 简单易学的机器学习算法——Softmax Regression
- 临时再加个。
- 正则表达式不包含表达式摘录
- 字符串处理函数的编程实现
- 94. Binary Tree Inorder Traversal
- 解决 Hadoop 集群执行包含 third-part lib 的 jar包的 ClassNotFoundException 问题
- Android入门——选择器selelctor之ColorStateList和StateListDrawable使用小结
- WebView shouldOverrideUrlLoading 方法使用
- 进程间通信方式以及各自的优缺点
- bzoj 1500: [NOI2005]维修数列(splay)
- apt-get指令
- linux进程调度 - 进程调度初始化与运行队列
- JSON数组对象和对象数组
- linux(red hat5版本为例)上jdk的安装