栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hadoop学习问题10:MapReduce程序报错java.lang.NullPointerException

Hadoop学习问题10:MapReduce程序报错java.lang.NullPointerException

问题描述

在运行MapReduce程序中把报错如下:

java.lang.Exception: java.lang.NullPointerException
	at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:492)
	at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:559)
Caused by: java.lang.NullPointerException
	at org.apache.hadoop.io.WritableComparator.compare(WritableComparator.java:157)
	at org.apache.hadoop.mapreduce.task.ReduceContextImpl.nextKeyValue(ReduceContextImpl.java:158)
	at org.apache.hadoop.mapreduce.task.ReduceContextImpl.nextKey(ReduceContextImpl.java:121)
	at org.apache.hadoop.mapreduce.lib.reduce.WrappedReducer$Context.nextKey(WrappedReducer.java:302)
	at org.apache.hadoop.mapreduce.Reducer.run(Reducer.java:170)
	at org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:628)
	at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:390)
	at org.apache.hadoop.mapred.LocalJobRunner$Job$ReduceTaskRunnable.run(LocalJobRunner.java:347)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
原因分析

显示空指针异常,一般而言就是某个对象你没有创建实例,然后就是使用,例如获取某个对象的属性a,但是没有创建对象实例就调用了,那么就相当于null.a,就会报空指针错误

我这里明显没有指向某个文件错误,但是第一行报错:org.apache.hadoop.io.WritableComparator.compare(WritableComparator.java:157)
说明有可能在我比较器相关的文件内有对象没有定义

问题解决


我这里是因为没有设置输出key类型以及开启自定义比较,通过父类构造器,第一个参数传入reduce输入的key的类型,第二个参数传true表示开启自定义的比较。如果没有设置,那么第二个参数就是一个null的值,那么就不会创建两个第一个参数传入的类的对象进行比较,也就是不能从compare中的两个参数获得两个比较的对象,那么我还是调用了compare方法并使用了他的参数,就产生空指针异常

关于上述提到的该构造器配置两个比较对象可以参考:MapReduce学习4-1:排序

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/696266.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号