Hadoop Reduce方法中的空指针异常?

时间:2017-01-12 14:22:08

标签: java hadoop mapreduce

我正在构建一个倒排索引,并且当使用context.write时,当前在reduce中得到一个空指针异常。谁能发现原因?我假设与序列化有关,因为我以前从未这样做过?打印出h时也会出错。

2 个答案:

答案 0 :(得分:0)

关于没有堆栈跟踪的序列化,我可以直接看到两件事:

  1. HMapValue需要一个默认构造函数,它不能由Hadoop创建而不需要一个
  2. 在默认构造函数中,您需要正确初始化ArrayListWritable(非空,并且需要setClass方法才能正确反序列化。

答案 1 :(得分:0)

事实证明这是因为我曾两次遍历数据集(行int df = Iterables.size(values);欺骗了我)。迭代器没有重置,因此reduce的主要块没有运行,最后我点了一个空指针,因为我试图访问那些甚至没有初始化的数据。

相关问题