WritableComparator的继承

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31246691/article/details/82149604

今天用MapReduce写了一个东西,一直报空指针的错误。在这儿简单Mark一下。
原因是这样的,我的程序中在Map阶段输出的key是我自定义的一个MyKey,然后在Sort阶段需要按照这个MyKey来排序。程序跑到Map达到100%就报错,空指针。所以问题肯定是处在Shuffle阶段。查了好久发现是我的Sort类写的有问题。
Sort类通过继承WritableComparator来比较两个MyKey对象。但是我的Sort类中没有写默认的构造方法。
这个默认的构造器是非常重要的,有了它,MapReduce才能创造对象,并通过readFields从序列化的数据流中读出并进行赋值。否则,无法创建对象,就会报空指针了。

猜你喜欢

转载自blog.csdn.net/qq_31246691/article/details/82149604