分享

【求助】Mapreduce自定义Partition无法找到,已打包到jar包中




java.lang.RuntimeException: java.lang.ClassNotFoundException: Class com.tsi.hadoop.mr.task.crosstrade.CrossAnalysisMain$CrossAnalysisPartition001 not found
        at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2199)
        at org.apache.hadoop.mapreduce.task.JobContextImpl.getPartitionerClass(JobContextImpl.java:244)
        at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.addDependencyJars(TableMapReduceUtil.java:765)
        at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.initTableMapperJob(TableMapReduceUtil.java:213)
        at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.initTableMapperJob(TableMapReduceUtil.java:169)
        at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.initTableMapperJob(TableMapReduceUtil.java:292)
        at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.initTableMapperJob(TableMapReduceUtil.java:93)
        at com.tsi.hadoop.mr.utils.MapReduceUtil.commonHBaseMapperSetting(MapReduceUtil.java:211)
        at com.tsi.hadoop.mr.utils.MapReduceUtil.saveMultiHdfsPathFromHBase(MapReduceUtil.java:511)
        at com.tsi.hadoop.mr.task.crosstrade.CrossAnalysisMain.run(CrossAnalysisMain.java:91)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
        at com.tsi.hadoop.mr.task.crosstrade.CrossAnalysisMain.main(CrossAnalysisMain.java:61)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
Caused by: java.lang.ClassNotFoundException: Class com.tsi.hadoop.mr.task.crosstrade.CrossAnalysisMain$CrossAnalysisPartition001 not found
        at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2105)
        at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2197)
        ... 18 more

已有(9)人评论

跳转到指定楼层
luguoyuanf 发表于 2016-4-14 12:47:42
CDH 5.5.1环境,yarn提交报这个错。使用HashPartitioner就没事。无语了~~~
回复

使用道具 举报

atsky123 发表于 2016-4-14 12:52:43
luguoyuanf 发表于 2016-4-14 12:47
CDH 5.5.1环境,yarn提交报这个错。使用HashPartitioner就没事。无语了~~~

所有的客户端都加上这个包
回复

使用道具 举报

luguoyuanf 发表于 2016-4-14 12:53:45
atsky123 发表于 2016-4-14 12:52
所有的客户端都加上这个包

所有客户端都加上这包?? 这个jar包不是自动分发到各个NodeManager的吗?
回复

使用道具 举报

阿飞 发表于 2016-4-14 13:16:28
luguoyuanf 发表于 2016-4-14 12:53
所有客户端都加上这包?? 这个jar包不是自动分发到各个NodeManager的吗?

说明你没打包成功,或则没有正确引用到。

回复

使用道具 举报

luguoyuanf 发表于 2016-4-14 13:20:26
阿飞 发表于 2016-4-14 13:16
说明你没打包成功,或则没有正确引用到。

我写成主函数的内部静态类也不行,难道我环境有问题?? 换了这新版本好多都不能用了我们用IDEA 开发,请大神指点下
回复

使用道具 举报

bioger_hit 发表于 2016-4-14 13:24:09
luguoyuanf 发表于 2016-4-14 13:20
我写成主函数的内部静态类也不行,难道我环境有问题?? 换了这新版本好多都不能用了我们用IDEA 开发,请 ...

先找到这个类
CrossAnalysisPartition001
回复

使用道具 举报

luguoyuanf 发表于 2016-4-14 13:30:00
bioger_hit 发表于 2016-4-14 13:24
先找到这个类
CrossAnalysisPartition001

微信截图_20160414132849.png 这个就在Main函数这个类的内部
回复

使用道具 举报

s060403072 发表于 2016-4-14 15:57:53
luguoyuanf 发表于 2016-4-14 13:30
这个就在Main函数这个类的内部

楼主代码里一看就有语法错误
回复

使用道具 举报

luguoyuanf 发表于 2016-4-15 09:30:57
s060403072 发表于 2016-4-14 15:57
楼主代码里一看就有语法错误

你是说那个public吗? 那个public去掉也还是那样
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条