我是靠谱客的博主 沉静小懒猪,这篇文章主要介绍运行mapreduce 程序报错 NoSuchMethodException,现在分享给大家,希望可以做个参考。

把hbase数据导入到hdfs  在运行mapreduce 程序报错!!

报错如下:

Error: java.lang.RuntimeException: java.lang.NoSuchMethodException: com.hadoop3.hbaseapi.day03.Demo02_HbasseToHdfs$ToHdfsMapper.<init>()
at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:131)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:722)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:340)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1614)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163)
Caused by: java.lang.NoSuchMethodException: com.hadoop3.hbaseapi.day03.Demo02_HbasseToHdfs$ToHdfsMapper.<init>()
at java.lang.Class.getConstructor0(Class.java:2892)
at java.lang.Class.getDeclaredConstructor(Class.java:2058)
at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:125)
... 7 more


解决办法:
1.如果自定义writable的时候需要注意,反射过程中需要调用无参构造方法,所以只要在自定义的writable类中加入默认的构造函数即可
2.Map和Reduce类须设置为Static权限修饰!


使用方法2 解决的!

最后

以上就是沉静小懒猪最近收集整理的关于运行mapreduce 程序报错 NoSuchMethodException的全部内容,更多相关运行mapreduce内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部