【SpringBoot 远程提交MapReduce】 Error: java.lang.ClassNotFoundException: xxxxx包.xxxxx类

Ianthe ·
更新时间:2024-11-10
· 856 次阅读

【SpringBoot】Error: java.lang.ClassNotFoundException: org.wltea.analyzer.core.IKSegmenter报错明细问题分析后记 报错明细

IDEA SpringBoot集成hadoop运行环境,本地启动项目,GET请求接口触发远程提交MapReduce任务至生产集群报错:

Error: java.lang.ClassNotFoundException: org.wltea.analyzer.core.IKSegmenter at java.net.URLClassLoader.findClass(URLClassLoader.java:382) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at com.jackroy.www.ServiceImpl.WordCountMap.map(WordCountMap.java:27) at com.jackroy.www.ServiceImpl.WordCountMap.map(WordCountMap.java:15) at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:146) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:799) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:347) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:174) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1729) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:168)

以下方法可解决类似错误:“Error: java.lang.ClassNotFoundException: xxxxx包.xxxxx类”

问题分析

报错信息说的很清楚,找不到IKSegmenter类,也就是我们的MapReduceApplication提交至集群后,找不到相关的依赖包,解决的思路很简单,只需要将依赖提前放入Hdfs某路径下,然后通过代码行指定依赖包路径:

// ikanalyzer-2012_u6.jar包存放于Hdfs的/0000/lib/目录下,其他缺包类似的处理办法 job.addFileToClassPath(new Path("hdfs://XXX.XXX.XX.XXX:XXXX/0000/lib/ikanalyzer-2012_u6.jar"));

接着启动项目,重新请求提交:
在这里插入图片描述
问题解决。

后记

大家有什么问题可下方留言交流。


作者:Jack_Roy



java.lang lang springboot JAVA mapreduce error

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章